У меня есть файлы в папке с ресурсами. Например, если мне нужно получить файл из папки ресурсов, мне это нравится:
File myFile= new File(MyClass.class.getResource(/myFile.jpg).toURI());
System.out.println(MyClass.class.getResource(/myFile.jpg).getPath());
У меня проверено и все работает!
Путь
/D:/Java/проекты/.../классы/X/Y/Z/myFile.jpg
Но. Если я создаю файл jar, используя Maven:
mvn package
... и затем запустите мое приложение:
java -jar MyJar.jar
У меня есть следующая ошибка:
Exception in thread "Thread-4" java.lang.RuntimeException: ხელმოწერის განხორციელება შეუძლებელია
Caused by: java.lang.IllegalArgumentException: URI is not hierarchical
at java.io.File.<init>(File.java:363)
... и путь к файлу:
file:/D:/java/projects/.../target/MyJar.jar!/X/Y/Z/myFile.jpg
Это исключение возникает, когда я пытаюсь получить файл из папки ресурсов. На этой линии. Зачем? Почему эта проблема возникает в JAR файле? Как вы думаете?
Есть ли другой способ, чтобы получить путь к папке ресурса?