java - 游戏找不到 native 库 - jinput-linux64

标签 java netbeans lwjgl slick2d

我目前正在开发一款基于 Slick2D 的游戏,但遇到了问题。
当我尝试运行我的游戏时(无论是从 dist 还是 ide),我收到以下错误:

java.lang.UnsatisfiedLinkError:java.library.path中没有jinput-linux64

我的目录结构如下:
./lib 包含库的所有 .jar
./natives 包含 .dll、.so 和 .jnilib

如果我转到项目选项,并将 -Djava.library.path=./natives 添加到 VM 选项,它就会正常工作。但在这种情况下,我需要将所有 native 库放在 dist 的根文件夹中。所以我想为所有本地人有一个单独的文件夹,所以我的 main 中的第一行是这样的:

System.setProperty("org.lwjgl.librarypath", System.getProperty("user.dir") + "/natives");

但由于某种原因,这不会给出标准链接错误(例如,找不到 lwjgl),但由于某种原因选择了 jinput-linux64,但 jinput 被添加为库并位于natives 文件夹。

我是否做错了什么,或者是否有更好的方法来有效地整体分发我的游戏?

谢谢!

最佳答案

将 native 库放入您的发行版中有什么问题?您不能依赖您的受众拥有您的应用程序所需的库。以下是我如何分发我用 slick 制作的东西:

MyFancyGame (Top directory)
-- libraries (mine and slick and lwjgl jars here)
   -- lwjgl 
      -- native (dlls and so files go in here)

在顶层目录中,我包含一个 shell 脚本和一个批处理文件,其中包含一行:

java -ea -Djava.library.path="libraries/lwjgl/native/" -cp  "libraries/*" com.MyGame.Main

这适用于我部署的每台计算机,只要它们安装了 java。

关于java - 游戏找不到 native 库 - jinput-linux64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10948673/

相关文章:

java - LWJGL - 文本颜色改变背景颜色

java - 2个方向的3D旋转?

java - 如何在 Android 应用程序中创建和显示二维码

java - 从单独的 JForm 访问 JComboBox 数据

java - cloudfoundry 中有多个构建包

java - Netbeans 找不到 java.io.InputStream

java - Eclipse 中代码清理的快捷键

尝试在 Eclipse 中运行时 LWJGL 中出现 java.lang.NoClassDefFoundError

java泛型边界类型

java - GWT 轻量级公制系统