私のプロジェクトはEclipseで問題なく動作しますが、実行可能なjarとしてエクスポートすると多くの問題が発生します。.jar は実行可能ではなく、ダブルクリックしても何も起こりません。cmd の .jar で java -jar を実行すると、多くの NPE が発生します。明らかに、.jar から実行したときのスキャナーは null です。getResource は null を返しますが、その理由はわかりません。
Scanner in = null;
try {
in = new Scanner(new FileReader(getClass().getResource(filename)
.getFile()));
readLine(in);
in.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
どこfilename = "../001.txt"
スキャナーを実行するクラスはgame/
. ファイル001.txt
はlevels/
そう../001.txt
すべきです。
これは、マニフェストが .jar 内でどのように見えるかです
Manifest-Version: 1.0
Class-Path: .
Main-Class: game.Game
これは非常に厄介な問題であり、何時間もグーグルで検索しても解決策はありませんでした。以前にも同様の問題がありましたが、実際にはNPEではなく相対パスをロードしていました。