Java - 库路径错误

Man*_*oba 4 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
Run Code Online (Sandbox Code Playgroud)

我可以用Eclipse开始我的游戏(使用Run as Java Application),但在菜单后我收到以下错误:

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)
Run Code Online (Sandbox Code Playgroud)

lwjgl.jar已放入文件夹\lib.

我能解释一下吗?

谢谢.

Jac*_*ack 9

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

  • 包含Java代码的.jar文件
  • 和本机二进制库(根据您的操作系统可以是.so.dll.dylib)

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

您通过Eclipse获得的第二个错误是一个连续的步骤:您的类路径包含jar库,但它无法找到附加到它的本机库,您可以通过以下方式修复它:

在此输入图像描述