【问题标题】:Java: NoClassDefFoundError in Eclipse while trying to use external .jar librariesJava:尝试使用外部 .jar 库时 Eclipse 中出现 NoClassDefFoundError
【发布时间】:2011-12-22 04:59:49
【问题描述】:

我已经进行了搜索,但它们对我的问题没有任何帮助,所以就这样吧。

我正在尝试在 Eclipse 中实现 Slick java 库 (http://slick.cokeandcode.com/),我只需将两个 .jar 文件添加到我的构建路径中。

我已经完成了 Eclipse 中的所有步骤,将两个外部 JAR 添加到 Eclipse(我的 JARS 显示在我的文件系统的“引用库”部分中,并且我的简短的小测试程序可以正确编译。

我的程序在运行时立即失败并显示以下消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/LWJGLException at GameTest.main(GameTest.java:29)

我已经多次检查了我的 jar,是的,org.lwjgl.LWJGLException 包含在我的构建路径中的一个 jar 中。我有两个库:slick.jar 和 lwjgl.jar。 LWJGLException 包含在 lwjgl.jar 中,但第 29 行调用了 slick.jar 中的类。

我非常困惑,还有什么问题?我的两个 JAR 都在我的构建路径中,我还能做什么?

提前致谢。

【问题讨论】:

  • 你的原生库设置正确了吗?
  • 您是否检查过该库是否也在运行类路径中使用?通常它应该包含在构建类路径中,但请检查。
  • Ulf Jaehrig - 使用 System.out.println("classpath=" +System.getProperty("java.class.path")),输出为:
  • 类路径=C:\Users\Sean\workspace\SlickTest2\bin;C:\Users\Sean\workspace\SlickTest2\lib\lwjgl.jar;C:\Users\Sean\workspace\SlickTest2 \lib\slick.jar
  • 你在使用 Maven,这个框架在 Maven repo 中可用吗?

标签: java eclipse


【解决方案1】:

尝试重建您的项目:Project > Clean

【讨论】:

  • 我这样做了,没有任何变化。
【解决方案2】:

您需要设置 LWJGL 的原生组件。

你做过吗?

这是通过单击 lwjgl.jar(在您添加了外部 jar 的窗口中)文件旁边的小箭头以显示下拉列表来完成的。双击“本机库位置”并选择包含您操作系统的本机文件的文件夹,然后单击“确定”。它们位于包含在 LWJGL 下载包中的 natives 文件夹中(例如,在 Windows 上,您将指向包含 *.dll 文件的 natives\windows 文件夹,在 Mac 上,您将指向 natives/macosx 文件夹,在 Linux 上你会指向 natives/linux 文件夹)。

检查此以更好地理解

Setting Up LWJGL with Eclipse

【讨论】:

  • 我没有这样做,但我只是这样做了,我仍然遇到与上述相同的错误。不过,我会通读链接,谢谢您发布。
  • 另外,我认为当找不到本机库时会抛出 UnsatisifedLinkError,而不是 NoClassDefFoundError。
  • 对不起,现在我不知道原因。尝试重新下载 slick.jar 和 lwjgl.jar。再试一次
【解决方案3】:

一些 IDE 包含正在开发的库,但很可能您需要将 jar 包与您的项目一起打包,或者将它们添加到包含服务器使用的库的全局引用目录中。

即使这不能解决您的问题,它也可以帮助将来遇到类似问题的访问者。

请记住,开发和生产环境不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-23
    • 2012-10-24
    • 2013-05-19
    • 1970-01-01
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    相关资源
    最近更新 更多