Ich habe Dateien im Ressourcenordner. Zum Beispiel, wenn ich Datei von Ressourcenordner erhalten müssen, kann ich wie folgt aus:Warum ist meine URI nicht hierarchisch?
File myFile= new File(MyClass.class.getResource(/myFile.jpg).toURI());
System.out.println(MyClass.class.getResource(/myFile.jpg).getPath());
Ich habe getestet und alles funktioniert!
Der Weg ist
/D:/java/projects/.../classes/X/Y/Z/myFile.jpg
Aber, Wenn ich erstellen JAR-Datei, zu verwenden, Maven:
mvn package
... und dann meine app starten:
java -jar MyJar.jar
Ich habe die Fehler folgende:
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)
... und den Pfad der Datei ist:
file:/D:/java/projects/.../target/MyJar.jar!/X/Y/Z/myFile.jpg
Diese Ausnahme tritt auf, wenn ich versuche Datei von Ressourcenordner zu erhalten. An dieser Linie. Warum? Warum ist das Problem in der JAR-Datei? Was denken Sie?
Gibt es eine andere Möglichkeit, den Pfad zum Ressourcenordner abzurufen?
Sie können einen Blick darauf werfen: http://stackoverflow.com/questions/10144210/java-jar-file-use-resource-errors-uri-is-not-hierarchical und die akzeptierte Antwort. – cyroxx