Java - 库路径错误

标签 java path

我正在尝试开始我的 java 游戏,但我在使用 java 命令行时遇到了一些问题:

这是我输入的内容:

C:\>java -Djava.library.path=%cd%\lib -jar game.jar

这是我得到的:

Exception in thread "main" java.lang.NoClassDefFoundError: org/lwjgl/LWJGLException
    at com.game.Main.main(Main.java:7)
    Caused by: java.lang.ClassNotFoundException: org.lwjgl.LWJGLException
    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

我可以使用 Eclipse 开始我的游戏(作为 Java 应用程序运行)但是在菜单之后我收到以下错误:

Exception in thread "Thread-5" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at org.lwjgl.Sys$1.run(Sys.java:72)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.lwjgl.Sys.doLoadLibrary(Sys.java:65)
    at org.lwjgl.Sys.loadLibrary(Sys.java:81)
    at org.lwjgl.Sys.<clinit>(Sys.java:98)
    at org.lwjgl.opengl.Display.<clinit>(Display.java:129)
    at com.game.displaygui.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

lwjgl.jar 已放入文件夹\lib

你能解释一下吗?

谢谢。

最佳答案

这是因为 lwjgl 库由两个组件构成:

  • 包含Java代码的.jar文件
  • 和 native 二进制库(可以是 .so.dll.dylib,具体取决于您的操作系统)

您遇到的第一个错误是因为您正在设置库路径,它应该包含native 库,但它确实包含.jar。所以你会得到一个 java.lang.NoClassDefFoundError 因为你应该将库路径设置为包含 native 库的文件夹,或者将类路径设置为包含真正的 lwjgl.jar 文件.

您使用 Eclipse 遇到的第二个错误是后续步骤:您的类路径包含 jar 库,但无法找到附加到它的 native 库,您可以通过以下方式修复它:

enter image description here

关于Java - 库路径错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10063530/

相关文章:

java - 从 R 运行 jar 时 rJava NoSuchFileException

node.js - 无法为 angular-phonecat 教程 : Cannot find module 'update-notifier' 进行 npm 安装

java - Thread.join 和 Synchronized 之间有什么区别?

java - 将 XML 从网站解析为 Android 中的字符串数组,请帮助我

java - 使用 powermock 和mockito 出现空指针异常

c# - 获取虚拟目录的名称?

java - 网.ltgt.gwt.maven :gwt-maven-plugin with Lombok

java - PHP、Java、Javascript 之间的 AES 互操作性

css - (HTML5 & CSS) 类问题

c++ - 如何获取现有文件的路径?