Я попытался получить путь бега банки, используя
String folder = MyClassName.class.getProtectionDomain().getCodeSource().getLocation().getPath();
c: \ app> java -jar application.jar
При запуске приложения jar с именем «application.jar» в Windows в папке « c: \ app » значение строковой переменной «folder» было « \ c: \». app \ application.jar"и у меня возникли проблемы с проверкой правильности пути
File test = new File(folder);
if(file.isDirectory() && file.canRead()) { //always false }
Итак, я попытался определить «тест» как:
String fold= new File(folder).getParentFile().getPath()
File test = new File(fold);
чтобы получить путь в правильном формате, например " c: \ app " вместо " \ c: \ app \ application.jar ", и я заметил, что он работает.