无法启动 .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.<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)
其他项目(没有这个库)工作正常。我该如何解决这个错误?
我的清单是:
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
Good day!
I created jar file (using Netbeans) and i can't start it. This project uses lwjgl libraries. Inside my IDE it works well.
I use next command:
java -jar LWJGL_TimerExample.jar
Answer is:
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)
Other projects (without this libraries) work fine. How can i solve this error?
My Manifest is:
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它不会按照您当前尝试的方式工作,因为您需要将本机文件放在 jar 旁边并通过“-Djava.library.path”参数指向它们。
如果您只想要一个 jar 并希望避免命令行和本机文件的麻烦,请使用 JarSplice 工具。 JarSplice 易于使用,并且会自动为您处理本机文件内容。
1) 只需将项目(类和资源)导出到 jar(通过 IDE 更容易完成)。
2) 然后运行 JarSplice,将您需要的所有 jar 添加到 jars 选项卡(您的应用程序 jar、lwjgl.jar 以及您正在使用的任何其他外部 jar)。
3)然后在本机选项卡上添加所有本机文件(windows *.dll、linux *.so、mac *.dylib 和 *.jnilib)。
4)在类选项卡上添加您的主类。然后创建你的罐子。
然后,您只需双击即可运行该 jar(或者如果您希望通过命令行使用“java -jar yourapp.jar”)。
It's not going to work the way you're trying to currently do it, since you need to have the native files along side the jar and point to them via the '-Djava.library.path' parameter.
If you just want a single jar and want to avoid the hassle of the command line and native files use the JarSplice tool. JarSplice is easy to use and will automatically handle the native file stuff for you.
1) Simply export your project (class and resources) to a jar (easier just to do it through your IDE).
2) Then run JarSplice, add all the jars you need to the jars tab (your app jar, lwjgl.jar, and any other external jar you're using).
3)Then on the natives tab add all the natives files (windows *.dll, linux *.so, mac *.dylib & *.jnilib).
4)On the class tab add your main class. Then create your jar.
You can then run this jar just by double clicking it (or if you wish via command line using 'java -jar yourapp.jar').
来自 LWJGL wiki:
看来您缺少第二部分 - 在
java.library.path
上放置本机库。From the LWJGL wiki:
It seems that you're missing the second part - having the native library on your
java.library.path
.