私はこのコードを以下に示します。Eclipseで使用すると完全に正常に動作しています。 しかし、実行可能なjarファイルをビルドすると、このコードは完了できません。問題は、テキストファイルが決して作成されないということです。jarファイルを実行しているときにテキストファイルを作成する方法
これは、マップフォルダ "worlds"がテキストファイルを作成しようとしているクラスフォルダ "game/src/res"への完全な方法です。
だから私の質問:あなたは、実行可能なjarファイルを実行しているテキストファイルを作成する簡単な方法は、
ありますか?
public GenerateWorld(int m, int n,int y, int x){//m is rows n is columns
Random random = new Random();
try{
out = new PrintStream(new FileOutputStream("src/res/worlds/temple.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
out.println(n+" "+m);
out.println(x+" "+y);
numbers = new String[m][n];
String row = "";
for(int i=0; i<m; i++){
for(int j=0; j<n; j++){
if(i+1==x&&j+1==y){
numbers[i][j] = 29+" ";
} else {
if(i==0){//TOP WALL
if(j==0){
numbers[i][j] = 25+" ";
} else if(j+1==n) {
numbers[i][j] = 26+" ";
} else {
numbers[i][j] = 21+" ";
}
} else if(j==0){//LEFT WALL
if(i==0 || i+1 == m){
numbers[i][j] = 25+" ";
} else {
numbers[i][j] = 23+" ";
}
} else if(i+1 == m){//BOTTOM;
if(j == 0 || j+1 == n){
numbers[i][j] = 25+" ";
} else {
numbers[i][j] = 22+" ";
}
} else if(j+1 == n){//RIGTH WALL
if(i==0){
numbers[i][j] = 26+" ";
} else if(i+1==m){
numbers[i][j] = 25+" ";
} else {
numbers[i][j] = 24+" ";
}
} else {
if(random.nextInt(20)==5){
numbers[i][j] = 28+" ";
} else {
numbers[i][j] = 20+" ";
}
}
}
row += numbers[i][j];
}
out.println(row);
row = "";
}
out.close();
}