【发布时间】:2013-08-05 23:37:52
【问题描述】:
我在资源文件夹中有文件。例如,如果我需要从资源文件夹中获取文件,我会这样做:
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 文件,使用 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 文件中有这个问题?你怎么看?
还有其他方法,获取资源文件夹路径吗?
【问题讨论】:
-
你可以看看这个:stackoverflow.com/questions/10144210/… 和接受的答案。
标签: java maven jar java-7 executable-jar