まず第一に、スタック オーバーフロー (および有能なフォーラムのような Web サイト) の「最初に検索し、最後に質問する」というポリシーを認識しており、宿題をして、問題の解決策を見つけるためにさまざまな情報源を検索しました。とはいえ、適切な答えが見つからなかった私は、この問題を個人的に尋ねるしかありませんでした。
特に Java 言語に関しては、ある程度のプログラミング スキルを持っています。デフォルトの Java SE JDK を使用してこの 2D ゲームに取り組んでいます。より具体的にはJDK 7u4。このプロジェクトには、ほとんどの I/O 操作を管理するクラスがあります。そのメソッドの 1 つは、ファイルへのパスを返します。
public static URL load(String resource) {
return ZM.class.getResource(resource);
}
現在、この方法は、Netbeans (バージョン 7.1) でプロジェクトを実行するときに問題なく機能します。ただし、プロジェクトをビルドしてクリーニングすると、結果の .jar ファイルは作成者と一致しないようです。コマンド ラインで .jar を実行すると、JVM が .jar をキャッチしましたNullPointerException
。.jar 内でファイルを読み取れなかったようです。プログラマーの本能に従って、プロジェクトのデバッグを開始しました。私の最初の試みは、load
メソッドが障害のあるメンバーであるかどうかを確認することでした。いくつかのテストを実行したところ、いくつかの興味深い結果が得られました。
メソッドの引数として「ZM.class」を使用して Netbeans でアプリケーションを実行すると、以下が返されました。
/D:/Projects/GeometryZombiesMayhem/build/classes/geometryzombiesmayhem/ZM.class
しかし、.jar ファイルから実行すると、以下が返されました。
file:/D:/Projects/GeometryZombiesMayhem/dist/GeometryZombiesMayhem.jar!/geometryzombiesmayhem/ZM.class
当然、最初のfile:
文字列を削除してみました。無効。次に、 からエクスクラメーション マークを取得してみました[...].jar![...]
。繰り返しますが、何もありません。パスから可能なすべての順列を削除しようとしました。運がない。
独自の .jar ファイルに対してメソッドをテストすると、問題なく動作しました。今、ファイルの内部にアクセスしようとすると、アクセスできません。このプロジェクトの以前のバージョンでは、問題なく機能していました。何が起こっているのかよくわかりません。どんな助けでも大歓迎です。
前もってありがとう、レナート