Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将带有Log4j2的项目导出到JAR时出错_Java_Eclipse_Jar_Log4j2 - Fatal编程技术网

Java 将带有Log4j2的项目导出到JAR时出错

Java 将带有Log4j2的项目导出到JAR时出错,java,eclipse,jar,log4j2,Java,Eclipse,Jar,Log4j2,我正在为使用Log4j2的项目创建一个JAR文件。我已将log4j2jar(用于核心和API)保存在“src”文件夹下的“lib”文件夹中。在Eclipse中,我导出了我的项目以创建JAR文件,并检查了JAR文件中是否包含/存在“lib”文件夹 当我在eclipse中运行项目时,它运行得非常好,但是当我试图通过cmd提示符执行jar时,我得到以下错误: C:\Users\workspace>java -jar ConnectorClient.jar Exception in thr

我正在为使用Log4j2的项目创建一个JAR文件。我已将log4j2jar(用于核心和API)保存在“src”文件夹下的“lib”文件夹中。在Eclipse中,我导出了我的项目以创建JAR文件,并检查了JAR文件中是否包含/存在“lib”文件夹

当我在eclipse中运行项目时,它运行得非常好,但是当我试图通过cmd提示符执行jar时,我得到以下错误:

C:\Users\workspace>java -jar ConnectorClient.jar
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
            at com.client.ConnectionClient.<clinit>(ConnectionClient.java:20)
    Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
            at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
            ... 1 more
似乎没有读取Log4j2 jar。有人能帮我吗。我已经在项目的Java构建路径中添加了2个JAR,如图所示

我的类路径文件(位于项目文件夹中)包括问题中的2个JAR,如图所示:

    <?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.8.0_05"/>
    <classpathentry kind="lib" path="lib/log4j-api-2.0-rc1.jar"/>
    <classpathentry kind="lib" path="lib/log4j-core-2.0-rc1.jar"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

需要帮忙吗


谢谢

也许您想导出一个可运行的Jar文件:

并包括所需的图书馆:


也许您想要导出一个可运行的Jar文件

并包括所需的图书馆:


也许您想要导出一个可运行的Jar文件

并包括所需的图书馆:


也许您想要导出一个可运行的Jar文件

并包括所需的图书馆:


有一种常见的误解,即一个罐子可以打包到另一个罐子中。它只是对类加载器不可用,因此最终会出现类加载异常

因此,您要么将依赖项jar提取到自己的jar中,如@PaulVargas使用eclipse所述,要么像90%的人那样,将依赖项添加到jar执行的类路径中:

java -classpath libs/*.jar -jar MyJar.jar

这意味着将所有依赖项放在一个单独的文件夹(这里是libs)中,而不是打包在jar中。

有一个常见的误解,即一个jar可以打包到另一个jar中。它只是对类加载器不可用,因此最终会出现类加载异常

因此,您要么将依赖项jar提取到自己的jar中,如@PaulVargas使用eclipse所述,要么像90%的人那样,将依赖项添加到jar执行的类路径中:

java -classpath libs/*.jar -jar MyJar.jar

这意味着将所有依赖项放在一个单独的文件夹(这里是libs)中,而不是打包在jar中。

有一个常见的误解,即一个jar可以打包到另一个jar中。它只是对类加载器不可用,因此最终会出现类加载异常

因此,您要么将依赖项jar提取到自己的jar中,如@PaulVargas使用eclipse所述,要么像90%的人那样,将依赖项添加到jar执行的类路径中:

java -classpath libs/*.jar -jar MyJar.jar

这意味着将所有依赖项放在一个单独的文件夹(这里是libs)中,而不是打包在jar中。

有一个常见的误解,即一个jar可以打包到另一个jar中。它只是对类加载器不可用,因此最终会出现类加载异常

因此,您要么将依赖项jar提取到自己的jar中,如@PaulVargas使用eclipse所述,要么像90%的人那样,将依赖项添加到jar执行的类路径中:

java -classpath libs/*.jar -jar MyJar.jar

这意味着将所有依赖项放在一个单独的文件夹中(这里是libs)未打包到您的jar中。

尝试使用projectroot添加jar右键单击配置构建路径,然后添加外部JARSY使用projectroot添加jar右键单击配置构建路径,然后添加外部JARSY使用projectroot添加jar右键单击配置构建路径,然后添加外部JARSY使用projectroot添加jar右键单击configure build path,然后添加external jarsHi,为了检查是否是类路径问题导致了这个问题,我通过:右键单击project->build path->configure build path->Libraries选项卡->add external jars->将2个jar添加到项目的类路径中,然后选择2个jar。它不起作用。。然后我将这些JAR添加到一个lib文件夹中,并将这个“lib”文件夹添加到“path”环境变量中。即使这样也不行。。你能告诉tam我哪里做错了吗?嗨,为了检查是否是类路径问题导致了这个问题,我通过右键单击project->Build Path->Configure Build Path->Libraries选项卡->Add external jar->然后选择2个jar,将2个jar添加到项目的类路径中。它不起作用。。然后我将这些JAR添加到一个lib文件夹中,并将这个“lib”文件夹添加到“path”环境变量中。即使这样也不行。。你能告诉tam我哪里做错了吗?嗨,为了检查是否是类路径问题导致了这个问题,我通过右键单击project->Build Path->Configure Build Path->Libraries选项卡->Add external jar->然后选择2个jar,将2个jar添加到项目的类路径中。它不起作用。。然后我将这些JAR添加到一个lib文件夹中,并将这个“lib”文件夹添加到“path”环境变量中。即使这样也不行。。你能告诉tam我哪里做错了吗?嗨,为了检查是否是类路径问题导致了这个问题,我通过右键单击project->Build Path->Configure Build Path->Libraries选项卡->Add external jar->然后选择2个jar,将2个jar添加到项目的类路径中。它不起作用。。然后我将这些JAR添加到一个lib文件夹中,并将这个“lib”文件夹添加到“path”环境变量中。即使这样也不行。。你能告诉tam我在这里做错了什么吗?这种方法对我很有效,但我仍然不确定为什么我在Eclipse中指定这些JAR在类路径上的位置时不起作用..我在最初的问题中添加了我的类路径文件。有什么建议吗?这种方法对我很有效,但我仍然不确定为什么我在Eclipse中指定类路径上这些JAR的位置时它不起作用。。