Я пытаюсь узнать, как создать файл / каталог в каталоге запущенного файла JAR.Я написал этот фрагмент кода, чтобы проверить свое понимание после просмотра некоторых учебных пособий и страниц со стековым потоком, таких как this и this .Однако ни одно из решений, которые я собрал, похоже, не создает никакого файла или каталога в текущем каталоге класса.Может ли кто-нибудь мне помочь?
Я работаю на MacOS, не уверенный, важна ли эта информация, но по возможности предпочту решение, которое работает в любой операционной системе.
Код
import java.io.*;
import java.nio.file.*;
class Main {
public static void main(String [] args) {
String firstPath = new Main().getClass()
.getProtectionDomain()
.getCodeSource()
.getLocation()
.getPath();
System.out.println(firstPath);
//first status
checkStatus(new File(firstPath));
System.out.println((new File(firstPath)).getParent());
String dirName1 = firstPath+"data";
File file1 = new File(dirName1);
//2nd
checkStatus(file1);
System.out.println(file1.mkdir());
//3rd
File file2 = Paths.get(firstPath, "data").toFile();
checkStatus(file2);
System.out.println(file2.mkdir());
//4th try, but without checkStatus
try {
String fileName = firstPath + "file.txt";
File textFile = new File(fileName);
System.out.println(textFile.createNewFile());
} catch (IOException e) {
System.out.println("fail");
}
}
public static void checkStatus(File file) {
System.out.println(file.getAbsolutePath() + " "+file.exists());
}
}