1

現在、Slick2D に基づくゲームに取り組んでいますが、問題が発生しました。
ゲームを実行しようとすると (dist からでも ide からでも)、次のエラーが発生します。

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

私のディレクトリ構造は次のとおりです。
./libライブラリ用のすべての.jarが
./natives含まれ、.dll、.so、および.jnilibが含まれています

プロジェクト オプションに移動し、-Djava.library.path=./nativesVM オプションに追加すると、正しく動作します。しかし、その場合、すべてのネイティブ ライブラリを dist のルート フォルダー内に配置する必要があります。したがって、すべてのネイティブ用に別のフォルダーを用意したいので、メインの最初の行には次のように記述します。

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

しかし、何らかの理由で、これは標準のリンク エラー (例: lwjgl が見つかりません) を与えませんが、何らかの理由で picksjinput-linux64を指定しますが、jinput はライブラリとして追加され、nativesフォルダー内にあります。

何か間違ったことはありますか? または、ゲームを全体的に効果的に配布するためのより良い方法はありますか?

ありがとうございました !

4

1 に答える 1

0

ディストリビューションにネイティブライブラリを配置することの何が問題になっていますか?アプリケーションに必要なライブラリをオーディエンスに任せることはできません。これが私がslickで作ったものを配布する方法です:

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

トップディレクトリには、シェルスクリプトと1行を含むバッチファイルが含まれています。

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

これは、Javaがインストールされている限り、デプロイするすべてのコンピューターで機能します。

于 2012-06-08T13:01:04.643 に答える