有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java程序在IDE中工作,但编译后(eclipse)会给出一个Java。lang.NoClassDefFoundError

参考库结构:(我所做的,在IDE中运行良好) enter image description here

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) 个答案

  1. # 1 楼答案

    我认为您对没有包含在jar中的第三方库有问题(但它们可以在IDE项目的类路径中找到,这就是它在那里工作的原因)

    您可以将任何第三方jar放入jar旁边的/lib目录中,并使用-cp JVM参数。 或者你可以尝试使用http://one-jar.sourceforge.net/、“maven shade plugin”插件等工具为maven构建工具