我尝试使用
在WEB-INF / lib中的jar中打开文件Thread.currentThread().getContextClassLoader();
URL url=classLoader.getResource(myconfig);
在调试器中我可以看到:
jar:file:/C:/apache-tomcat/webapps/mywebapp/WEB-INF/lib/myjarresource.jar!
/conf/configuration.xml
为什么文件路径是“!” ? 我认为由于这个原因应用程序无法打开此文件。 如何获得正确的路径? 感谢。
答案 0 :(得分:5)
这意味着JAR文件中!
之后的任何内容。
如果是myjarresource.jar!/conf/configuration.xml
,请使用压缩实用程序(如7-zip)打开myjarresource.jar
,您会看到它包含conf/configuration.xml
。
答案 1 :(得分:3)
在JarURLConnection javadoc中,描述了JAR URL的语法:
JAR URL的语法是:jar:!/ {entry}
所以'!'表示您输入'java存档。
编辑:
我认为你不能File file=new File(url.toURI())
,因为“:”在生成的URI中出现两次并且不符合URI specifications(第2.2和3章),因此在文件ctor中被拒绝。