リソースフォルダーにファイルがあります。たとえば、リソース フォルダーからファイルを取得する必要がある場合は、次のようにします。
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
しかし、 Mavenを使用してjarファイルを作成すると:
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ファイルにその問題があるのはなぜですか? どう思いますか?
リソースフォルダーのパスを取得する別の方法はありますか?