Java 将带有Log4j2的项目导出到JAR时出错
我正在为使用Log4j2的项目创建一个JAR文件。我已将log4j2jar(用于核心和API)保存在“src”文件夹下的“lib”文件夹中。在Eclipse中,我导出了我的项目以创建JAR文件,并检查了JAR文件中是否包含/存在“lib”文件夹 当我在eclipse中运行项目时,它运行得非常好,但是当我试图通过cmd提示符执行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
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的位置时它不起作用。。