リソースフォルダにファイルがあります。私はリソースフォルダからファイルを取得する必要がある場合たとえば、私はそのようにします:私のURIが階層化されていないのはなぜですか?
File myFile= new File(MyClass.class.getResource(/myFile.jpg).toURI());
System.out.println(MyClass.class.getResource(/myFile.jpg).getPath());
私ははとの作品すべてをテストしてみました!
パスは、/D:/java/projects/.../classes/X/Y/Z/myFile.jpg
しかしである私が使用して、jarファイルを作成する場合は、その後、
mvn package
...と私のアプリを起動します:Mavenの
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ファイルにその問題がありますか?どう思いますか?
リソースフォルダのパスを取得する別の方法はありますか?
あなたはこれを見ているかもしれません:http://stackoverflow.com/questions/10144210/java-jar-file-use-resource-errors-uris-not-hierarchicalそして受け入れられた答え。 – cyroxx