我正在尝试为我的项目添加一些库。当我调试应用程序时,一切都很完美,但是当我编译项目并运行它时,我得到:
Exception in thread "main" java.lang.NoClassDefFoundError: de/javasoft/plaf/synt
hetica/SyntheticaSimple2DLookAndFeel
at pkg_main.FRM_Main.main(FRM_Main.java:56)
Caused by: java.lang.ClassNotFoundException: de.javasoft.plaf.synthetica.Synthet
icaSimple2DLookAndFeel
at java.net.URLClassLoader$1.run(Unknown Source)
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
看起来JVM无法获取库。我在NetBeans中尝试过相同的功能并完美运行,因此我认为这是Eclipse问题。
如果有人可以帮助我。提前谢谢!
答案 0 :(得分:1)
您正在成功编译/导出代码,但是当您运行它时,您将丢失类路径中的库。
netbeans和eclipse之间的区别很可能是默认情况下,netbeans包含导出时jar中的所有库,而eclipse则不包括。如果您打算将所有内容打包在一个jar中,请确保从eclipse导出时在第一个导出屏幕上选择所有库。
如果您只想导出代码(如果您希望在不重建jar的情况下切换库的版本),则可以继续仅导出代码,但是在运行代码时,必须指定库中的代码。类路径
java -cp "yourJar.jar;lib/*" my.package.MainClass
答案 1 :(得分:0)
在eclipse和Netbeans中检查你的类路径,你会看到差异,