Я попытался получить пробег в jar, используя
String folder = MyClassName.class.getProtectionDomain().getCodeSource().getLocation().getPath();
c: \ app> java -jar application.jar
Запуск баночки приложение под названием «application.jar», в Windows в папке « c: \ app », значение переменной «String» было « \ 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 ", и я заметил, что он работает.