美好的一天!
我创建了 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.<clinit>(Sys.java:99)
at org.lwjgl.opengl.Display.<clinit>(Display.java:130)
at Sourse.TimerExample.start(TimerExample.java:32)
at lwjgl_timerexample.Main.main(Main.java:21)
其他项目(没有这个库)工作正常。我该如何解决这个错误?
我的 list 是:
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
最佳答案
它不会像您当前尝试的那样工作,因为您需要将 native 文件放在 jar 旁边并通过“-Djava.library.path”参数指向它们。
如果您只想要一个 jar 并希望避免命令行和 native 文件的麻烦,请使用 JarSplice工具。 JarSplice易于使用,并会自动为您处理 native 文件内容。
1) 只需将您的项目(类和资源)导出到一个 jar(通过您的 IDE 更容易)。
2) 然后运行 JarSplice,将您需要的所有 jar 添加到 jars 选项卡(您的应用程序 jar、lwjgl.jar 以及您正在使用的任何其他外部 jar)。
3) 然后在 natives 选项卡上添加所有 natives 文件(windows *.dll、linux *.so、mac *.dylib 和 *.jnilib)。
4) 在类选项卡上添加您的主类。然后创建你的 jar 。
然后您可以通过双击运行这个 jar(或者如果您希望通过命令行使用“java -jar yourapp.jar”)。
关于java - 无法启动 .jar 文件(使用 LWJGL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6749141/