私はゲームに取り組んでいて、savefiles のファイル I/O について助けが必要です。現在、私はそれらから読み取るためのこのセットアップのようなものを持っています:
public static void savesManagementMenu() {
for (int i = 1; i < 4; i++) {
fileURL = JRPG.class.getResource("Saves/save" + i + ".txt");
System.out.println(fileURL);
if (fileURL != null) {
saveMenuSaveFile = new File(fileURL.getPath());
try {
//System.out.println("File # " + i +" exists.");
saveMenuSaveFileReader = new FileReader(fileURL.getPath());
saveMenuFileScanner = new Scanner(saveMenuSaveFileReader);
saveMenuInfo[i - 1][0] = saveMenuFileScanner.nextLine();
saveMenuFileScanner.nextLine();
saveMenuFileScanner.nextLine();
saveMenuFileScanner.nextLine();
saveMenuInfo[i - 1][1] = saveMenuFileScanner.nextLine();
saveMenuInfo[i - 1][2] = saveMenuFileScanner.nextLine();
} catch (FileNotFoundException ex) {
Logger.getLogger(JRPG.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
saveMenuInfo[i - 1][0] = null;
}
}...
Netbeans からこのメソッドを使用して実行/コンパイルすると、アプリケーション/ゲームが "E:\Copy\JRPG\build\classes\jrpg\Saves" に表示されます。
プロジェクトをクリーンアップしてビルドし、コマンド ラインから実行しようとすると、次のような応答が返されます。
jar:file:/C:/Users/Adam/Desktop/New%20folder/JRPG.jar!/jrpg/Saves/save1.txt
2013 年 8 月 22 日 11:54:18 PM jrpg.JRPG savesManagementMenu SEVERE: null java.io.FileNotFoundException: file:\C:\Users\Adam\Desktop\New%20folder\JRPG.jar !\jrpg\Saves\save1. txt (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません)
そして、ゲームはただフリーズします。コンパイルされたコードを実行するときに調べたい保存のファイル パスは、C:\Users\Adam\Desktop\New folder\Saves です。
相対ファイルパスはどれですか? ファイルをどこから実行しても、コンパイルされたコードが正しい場所に表示されるように、この問題を修正するにはどうすればよいですか? (私の友人が自分のコンピューターからゲームを実行したかったとしましょう。ただし、「新しいフォルダー」フォルダーをデスクトップ以外の場所に置きました)