我有一些文件在资源文件夹中。例如,如果我需要从资源文件夹中获取一个文件,我会这样做:
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文件中会有这个问题?你觉得呢?
是否有其他方法可以获得资源文件夹路径?