首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么ContextClassLoader返回带感叹号的路径?

为什么ContextClassLoader返回带感叹号的路径?
EN

Stack Overflow用户
提问于 2012-03-02 09:04:55
回答 2查看 8.8K关注 0票数 12

我尝试在/lib中打开jar中的文件

代码语言:javascript
复制
Thread.currentThread().getContextClassLoader();
 URL url=classLoader.getResource(myconfig);

在调试器中,我可以看到:

代码语言:javascript
复制
jar:file:/C:/apache-tomcat/webapps/mywebapp/WEB-INF/lib/myjarresource.jar! 
 /conf/configuration.xml

为什么在文件路径中是"!“?由于这个原因,我认为应用程序不能打开这个文件。如何接收正确的路径?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-03-02 09:06:57

这意味着!在JAR文件中之后会发生什么。

myjarresource.jar!/conf/configuration.xml的情况下,使用压缩实用程序(如7-zip )打开myjarresource.jar,您将看到它包含conf/configuration.xml

票数 8
EN

Stack Overflow用户

发布于 2012-03-02 09:21:24

JarURLConnection javadoc中,JAR URL的语法描述如下:

JAR URL的语法是: jar:!/{entry}

所以“!”指示您“输入”java存档。

编辑:我认为您不能执行File file=new File(url.toURI()),因为":“在生成的URI中出现了两次,并且不符合URI规范(第2.2章和第3章),因此在File中被拒绝。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9530549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档