Java程序在IDE中工作,但编译后(eclipse)会给出一个Java。lang.NoClassDefFoundError
StackTrace:
Exception in thread "main" java.lang.NoClassDefFoundError: org/newdawn/slick/SlickException
at com.gametest.game.GameLauncher.main(GameLauncher.java:61)
Caused by: java.lang.ClassNotFoundException: org.newdawn.slick.SlickException
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
基本上,我使用slick和LWJGL来让音频工作,在IDE中它运行良好(配置了构建路径,选择了LWJGL的本地版本),但在编译和运行时,它崩溃了,在控制台中它给出了上面的stacktrace
我正在运行64位macosx,代码是用eclipse编写和编译的。使用的库:lwjgl,slick(http://slick.ninjacave.com/)
使用以下命令从“终端”控制台运行:
java -cp ~/Desktop/FirstGame.jar com.gametest.game.GameLauncher
这似乎是一个常见的错误,但在网上搜索了很多时间后,我还没有找到解决这个问题的答案
(编辑) 涉及:ERROR!! AppGameContainer java.lang.ClassNotFoundException
# 1 楼答案
我认为您对没有包含在jar中的第三方库有问题(但它们可以在IDE项目的类路径中找到,这就是它在那里工作的原因)
您可以将任何第三方jar放入jar旁边的/lib目录中,并使用-cp JVM参数。 或者你可以尝试使用http://one-jar.sourceforge.net/、“maven shade plugin”插件等工具为maven构建工具