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

发布于 2024-11-24 16:23:12 字数 1169 浏览 1 评论 0原文

再会!

我创建了 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

可可 2024-12-01 16:23:12

它不会按照您当前尝试的方式工作,因为您需要将本机文件放在 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').

吾性傲以野 2024-12-01 16:23:12

来自 LWJGL wiki

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

看来您缺少第二部分 - 在 java.library.path 上放置本机库。

From the LWJGL wiki:

LWJGL consists of two parts, a java part and a native code part. You must setup both of these parts properly in order for lwjgl to work. In order to setup the java part you must add lwjgl.jar to the classpath (as an external library jar). As for the native part (*.dll files on windows, *.so on linux, *.jnilib on mac, etc) you must tell java which folder the natives are located in for LWJGL to be able to find them (use the -Djava.library.path=path/to/dir vm parameter to do this).

It seems that you're missing the second part - having the native library on your java.library.path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文