gpt4 book ai didi

java - 当我运行 .jar 时,出现 "No lwjgl in java.library.path"错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:09 24 4
gpt4 key购买 nike

我正在通过 Netbeans 使用 LWJGL 库用 Java 制作一个基本游戏。

我已经使用 lwjgl、lwjgl_util 和 jinput .jar 创建了一个库,并将 -Djava.library.path=C:\LWJGL\native\windows 添加到项目属性的“运行”类别中。

当我在 Netbeans 中运行该文件时,它运行完美,没有任何问题。但是,当我通过双击文件运行 .jar 时,没有弹出任何内容(据我所知,甚至没有弹出 cmd 错误窗口)。当我通过命令行运行文件时,我得到:

C:\Users\200160765>java -jar "C:\Users\200160765\Documents\NetBeansProjects\Game
\dist\Game.jar"
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.libr
ary.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
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 game.Draw.createWindow(Draw.java:198)
at game.Draw.init(Draw.java:214)
at game.Draw.run(Draw.java:56)
at game.Main.main(Main.java:9)

我试过将 DLL 和 .jar 库文件移动到与 Game.jar 相同目录中的“lib”文件夹,并将它们移动到与 Game.jar 相同的目录,但我得到了同样的错误。有人能帮我解释一下为什么我似乎无法在 netbeans 之外运行它吗?

最佳答案

您必须使用命令行参数 -Djava.library.path="path/to/natives"将 jvm 指向 native 文件所在的位置。您可以使用批处理 (.bat) 文件来指定它并为您启动您的应用程序。

或者,您可以使用类似 JarSplice 的工具从所有 jar 创建单个可执行 jar 文件,同时在其中包含 native 文件。它可以自动执行手动指定原生的棘手部分,并提供更好的最终用户体验。

要使用 JarSplice,只需在 jars 选项卡中选择您的 game.jar、lwjgl.jar、lwjgl_util.jar 和 jinput.jar。然后是 natives 选项卡中的所有 *.dll、*.so、*.dylib 和 *.jnilib 文件。在类选项卡上添加您的主类并创建单个可执行 jar。

关于java - 当我运行 .jar 时,出现 "No lwjgl in java.library.path"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com