2011-07-05 7 views
7

Netbeans経由でLWJGLライブラリを使用してJavaで基本的なゲームを作っています。.jarを実行すると、 "No lwjgl in java.library.path"エラーが発生する

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) 

私はGame.jarと同じディレクトリに「LIB」フォルダに周りのDLLのファイルと.jarライブラリファイルを移動しようとした、と移動しましたそれらはGame.jarと同じディレクトリにありますが、同じエラーが発生します。誰かがなぜ私がネットビーンの外でこれを動かすことができないように私を助けることができますか?

答えて

9

コマンドラインパラメータ-Djava.library.path = "path/to/natives"を使用して、ネイティブファイルの場所をjvmに指定する必要があります。バッチ(.bat)ファイルを使用してこれを指定し、アプリケーションを起動することができます。

また、JarSpliceのようなツールを使用して、すべてのjarファイルから単一の実行可能なjarファイルを作成すると同時に、その内部にネイティブファイルを含めることができます。ネイティブを手作業で指定するという面倒な作業を自動化し、より良いエンドユーザーエクスペリエンスを提供します。

JarSpliceを使用するには、jarsタブのgame.jar、lwjgl.jar、lwjgl_util.jar、およびjinput.jarを選択します。次に、* .dll、* .so、* .dylib、* .jnilibファイルがすべてネイティブタブに表示されます。クラス・タブにメイン・クラスを追加し、単一の実行可能なjarを作成します。

+1

私は、.batファイルの構文に慣れていませんが、そのルートを試しました: '@echo off java -jar Game.jar -Djava.library.path = C:\ LWJGL \ native \ windows'そして、同じエラー。 –

+0

さらに、ファットジャーのことは機能しますが、現在レンダリングしているブロックのテクスチャはロードされません。しかし、これは.jarへのパッキングとFat Jarへのパッキングの結果である可能性があります。 –

+0

yehは、FileまたはFileInputStreamを使用してテクスチャをロードしていないことを確認します。これらのテクスチャは、jarファイル内のテクスチャをロードするために使用できないためです。 – Gavin

3

LWJGLには、特定のプラットフォームのネイティブコンポーネントがjava.library.pathに存在する必要があります。これらは、LWJGLディストリビューションのサブディレクトリnativeにあり、Linux、OSX、Solarisでは.so、Windowsでは.dllで終了します。

+0

私はDLLが必要だと知っていますが、NetbeansがどのようにDLLの問題を発見したのかは分かりませんが、.jarはありません。 –

0

そして、まだこれを実行する別の方法は、Java Web Startの(JNLP)である:http://lwjgl.org/forum/index.php?topic=3763.0

これは、いくつかの方法で簡単にプロジェクトを共有することができます。

0

私はこの問題を抱えていたとjarSpliceを使用してそれを固定(http://ninjacave.com/jarsplice)

それ以外の場合は、意志、あなたが脂肪のjarファイルを作成する前に、あなたのjarファイルで予め配置原住民をすべて削除してください

2

私がこの問題を抱えていたのは、間違いなく、「Arguments」という名前のフィールドのネイティブ(-Djava.library.path =/native /)の場所を指定するために引数を間違って入れたためでした。オプションパネルのカテゴリを 'vmオプション'の代わりに実行します。 http://s30.postimg.org/6f90akidt/Capture.png

0

同じエラーが発生し、「my_lib.jar」ではなく「my_lib.zip」というファイル名を付けたことに気付きました。たぶん誰かを助けるかもしれない。

関連する問題