0

私はウィキのチュートリアル セクションで提供されている Asteroids Game のサンプル コードに取り組んでいましたが、奇妙なエラーに遭遇しました。

このコードは、私の開発環境である Eclipse で問題なく動作します。ゲームはエラーなしで実行され、正常に終了します。

ファイル メニューでエクスポート プロセスを実行し、このバッチ ファイル コードで実行される実行可能 jar を作成します。

java -Djava.library.path=D:\Tools\lwjgl-2.8.4\lwjgl-2.8.4\native\windows -jar SpaceInvaders.jar

表示を開始し、wav ファイルをロードしようとすると失敗します。このエラーを出します。

Exception in thread "main" java.lang.NullPointerException

コードのどこでこれが起こっているかを追跡しました.wavがロードされている場所です. ファイルがコードのすぐ隣にあるにもかかわらず、明らかに環境の外ではファイルを見つけることができませんか? 私のすべてのwavファイルとgifファイルは、現在Javaクラスファイルと同じディレクトリにあるため、コードからそれらを呼び出すと次のようになります。

http://i.imgur.com/2gnN1.png

Googleで検索すると、それらを別のファイルに圧縮してから、クラスフォルダーにインポートしてそこから参照するように指示されます。別のエンティティを作成する代わりに、ファイルをメインの jar ファイル内に保持する方法があるかどうか疑問に思っていました。

返信ありがとうございます。さらに情報が必要な場合はお知らせください。

4

1 に答える 1

1

paulscode の 3d サウンドシステムなど、より高レベルの API の使用を検討することをお勧めします。SoundSystem は jar の内部から読み取ることができ (あなたが求めているように)、現在のハードウェアで LWJGL サウンドがサポートされていない場合は、自動的に Java サウンドに切り替えます。

于 2012-08-06T18:52:25.503 に答える