游戏找不到本机库 - jinput-linux64

时间:2012-06-08 12:15:06

标签: java netbeans lwjgl slick2d

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

java.lang.UnsatisfiedLinkError: no jinput-linux64 in java.library.path

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

如果我转到项目选项,并将-Djava.library.path=./natives添加到VM选项,它可以正常工作。但在这种情况下,我需要在dist的根文件夹中包含所有本机库。所以我想为所有本地人创建一个单独的文件夹,所以我的主要内容是:

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

将本机库放在您的发行版中有什么问题?您不能依赖您的受众来拥有您的应用程序所需的库。这是我如何用光滑的方式分发我制作的东西:

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,这就适用于我部署的每台计算机。