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

标签 java eclipse classpath noclassdeffounderror

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

堆栈跟踪:

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 的 native ),但是当编译和运行时,它崩溃了,并且在控制台中给出了上面的堆栈跟踪。

我正在运行64位macosx,代码在eclipse中编写和编译。使用的库:lwjgl、slick ( http://slick.ninjacave.com/ )

从“终端”控制台运行,使用:

java -cp ~/Desktop/FirstGame.jar com.gametest.game.GameLauncher

这似乎是一个常见的错误,但在网上搜索了很多时间后,我还没有找到解决它的答案。

(编辑) 涉及:ERROR!! AppGameContainer java.lang.ClassNotFoundException

最佳答案

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

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

关于Java程序在IDE中工作,但编译后(eclipse)给出java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36013672/

相关文章:

java - 如何将 UTC 转换为 SGT

java - Tomcat - Eclipse 中的服务器

java - 将接口(interface)重定向到对象

java - 编译时间与运行时间依赖关系 - Java

java - 是否可以动态加载包中包含的所有属性文件?即 MyClass.class.getResource ('*.properties' );

java - 通过包含/排除模式查找类路径上的文件

java - 什么算法更有效地移动 java 数组中的每个元素?

java - 如何使用数组列表存储坐标以在固定区域内绘制不同颜色的随机点?

java - 由 : org. hibernate.AnnotationException 引起:使用 @OneToMany 或 @ManyToMany 定位未映射的类:

java - Eclipse Ganymede 未正确验证 JSP