Java-库路径错误

Java-库路径错误,java,path,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.C

我正在尝试开始我的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(使用Run as 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)
线程“thread-5”java.lang.UnsatifiedLinkError中的异常:java.library.path中没有lwjgl 位于java.lang.ClassLoader.loadLibrary(未知源) 位于java.lang.Runtime.loadLibrary0(未知源) 位于java.lang.System.loadLibrary(未知源) 位于org.lwjgl.Sys$1.run(Sys.java:72) 位于java.security.AccessController.doPrivileged(本机方法) 位于org.lwjgl.Sys.doLoadLibrary(Sys.java:65) 位于org.lwjgl.Sys.loadLibrary(Sys.java:81) 位于org.lwjgl.Sys(Sys.java:98) 在org.lwjgl.opengl.Display上(Display.java:129) 在com.game.displaygui.run(未知源) 位于java.lang.Thread.run(未知源)
lwjgl.jar
已放入文件夹
\lib

你能跟我解释一下我明白了吗


谢谢。

您应该明确指定要包括哪些lib文件(以;)分隔):

-cp%cd%\lib\lwjdl.jar;%cd%\lib\.jar

不要试图使用通配符*,因为它弊大于利(根据以前的经验:)

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

  • 包含Java代码的.jar文件
  • 和本机二进制库(根据您的操作系统,可以是.so.dll.dylib
您遇到的第一个错误是,您正在设置库路径,该路径应包含本机库,但它确实包含.jar。因此,您会得到一个
java.lang.NoClassDefFoundError
,因为您应该将库路径设置为包含本机库的文件夹,或者将类路径设置为包含真实的lwjgl.jar文件

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


您可以使用
java.library.path
选项指定要加载的本机库的位置。在该选项所指向的位置,您将放置LWJGL所需的所有
dll
.so
文件。另一方面,您需要通过
-classpath
选项确保所有必需的JAR文件都在类路径上。目前,您的JAR文件位于错误的目录中。

在Eclipse中,如果您使用maven

将以下内容添加到项目“运行”:“VM选项”


我不明白我在这里该做什么?
-cp %cd%\lib\lwjdl.jar;%cd%\lib\<another-lib>.jar
-Djava.library.path=yourpath/youproject/java/target/natives