无法启动.jar文件(使用LWJGL)

美好的一天!

我创建了jar文件(使用Netbeans),我无法启动它。 该项目使用lwjgl库。 在我的IDE里面它运作良好。

我用下一个命令:

java -jar LWJGL_TimerExample.jar 

答案是:

 Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1758) at java.lang.Runtime.loadLibrary0(Runtime.java:823) at java.lang.System.loadLibrary(System.java:1045) at org.lwjgl.Sys$1.run(Sys.java:73) at java.security.AccessController.doPrivileged(Native Method) at org.lwjgl.Sys.doLoadLibrary(Sys.java:66) at org.lwjgl.Sys.loadLibrary(Sys.java:82) at org.lwjgl.Sys.(Sys.java:99) at org.lwjgl.opengl.Display.(Display.java:130) at Sourse.TimerExample.start(TimerExample.java:32) at lwjgl_timerexample.Main.main(Main.java:21) 

其他项目(没有这个库)工作正常。 我该如何解决这个错误?

我的清单是:

 Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.1 Created-By: 1.6.0_26-b03-384-10M3425 (Apple Inc.) Main-Class: lwjgl_timerexample.Main Class-Path: lib/jinput.jar lib/lwjgl.jar lib/lwjgl_util.jar X-COMMENT: Main-Class will be added automatically by build 

它不会按照您当前尝试的方式工作,因为您需要将jar文件放在jar旁边并通过’-Djava.library.path’参数指向它们。

如果您只想要一个jar并且想要避免命令行和本机文件的麻烦,请使用JarSplice工具。 JarSplice易于使用,并会自动为您处理本机文件。

1)只需将项目(类和资源)导出到jar(更容易通过IDE执行)。

2)然后运行JarSplice,将所需的所有jar子添加到jar选项卡(你的app jar,lwjgl.jar和你正在使用的任何其他外部jar)。

3)然后在natives选项卡上添加所有本机文件(windows * .dll,linux * .so,mac * .dylib&* .jnilib)。

4)在类选项卡上添加主类。 然后创建你的jar。

然后,您可以通过双击它来运行此jar(或者如果您希望通过命令行使用’java -jar yourapp.jar’)。

来自LWJGL维基 :

LWJGL由两部分组成,java部分和本机代码部分。 您必须正确设置这两个部分才能使lwjgl正常工作。 要设置java部分,必须将lwjgl.jar添加到类路径中(作为外部库jar)。 至于原生部分(Windows上的* .dll文件,linux上的* .so,mac上的* .jnilib等),你必须告诉java本机所在的文件夹,以便LWJGL能够找到它们(使用– Djava.library.path = path / to / dir vm参数来执行此操作)。

您似乎错过了第二部分 – 在java.library.path上拥有本机库。