执行我的项目的JAR文件后,我收到NoClassDefFoundError。 使用Eclipse进行调试可以正常工作,但是自从我安装JDK 1.7以来,每次使用Windows命令java -jar myproject.jar
时都会出现此错误。更新到Java 7之后的NoClassDefFoundError
它使用Java 1.6正常工作。
这里的错误日志:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Layout
at program.Main.main(Main.java:20)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Layout
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
我用Google搜索有关,但无法找到合适的解决方案。
我已经做了: -uninstall的Java 1.7,安装1.6,而不是 -check的其他计算机上的类路径 - 尝试用一个参考 - 创建一个空的项目将log4j(从它卸载Java 1.7后)库=>同样的问题
而这里的类路径文件:
<?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/JavaSE-1.6"/>
<classpathentry kind="lib" path="lib/RXTXcomm.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.15.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
你有任何想法,我应该做些什么?
感谢,
尼尔斯
编辑:如果我的项目导出为“可运行JAR”,而不是一个简单的“JAR”,程序启动,但无法使用我在使用其他库( RxtxComm)。这里的日志我得到:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
EDIT2:我终于通过将rxtxSerial.dll在Windows/system32文件夹下解决的最后一个问题。 但是,我不明白为什么它不工作了,如果我导出我的项目作为JAR文件,为什么我需要现在使用dll文件。
你见过这个问题http://stackoverflow.com/questions/502960/eclipse如何构建一个可执行文件jar与外部jar? – user1516873
将其导出为可运行的JAR文件,而不是简单的JAR文件接口可以工作。我得到另一个错误,但程序启动并在屏幕上打印内容。 –
我得到它与可运行的JAR一起工作。谢谢;-) –