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

标签 java macos jar lwjgl unsatisfiedlinkerror

美好的一天!

我创建了 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/

相关文章:

java - CalendarView 不显示一个月中的几天

java - 如何测试延迟加载的 JPA 集合是否已初始化?

macos - 在Mac OS X 10.7(Lion)上已弃用libcrypto

python - 段错误: 11 when I run Pygame

java - JVM 只会获取 .jar 文件吗?

java - Maven - 如何管理具有共同依赖项的多个 jar

java - 从另一个数组列表中删除一个数组列表元素的最佳方法

java - 查找数组中的下一个 double 值

macos - 转换网络接口(interface)名称

java - 在 jar 内使用 jar 时 Eclipse 生成的自定义类加载器在哪里?