[英]Why does URL return null here when trying to get a resource inside Jar?
我有这个Jar文件。
core.jar
:
META-INF/...
com/...
config
myLog4j.xml
schema
尝试读取/加载的类在com/my/company/MyLogging.class
代码是这样的,在MyLogging
类中:
URL myUrl = MyLogging.class.getResource("/config/myLog4j.xml");
myUrl
为null
。 它不返回资源/文件。
编辑:包括路径的图片。
tar输出:
0 Fri Oct 24 16:15:10 CDT 2014 META-INF/
122 Fri Oct 24 16:15:08 CDT 2014 META-INF/MANIFEST.MF
0 Wed Oct 22 16:40:26 CDT 2014 com/
0 Wed Oct 22 16:40:26 CDT 2014 com/my/company/..
.....
0 Wed Oct 08 11:20:42 CDT 2014 config/
0 Wed Oct 08 11:20:42 CDT 2014 config/email/
0 Wed Oct 08 11:20:44 CDT 2014 schema/
0 Wed Oct 08 11:20:42 CDT 2014 schema/alliance/
0 Wed Oct 08 11:20:44 CDT 2014 schema/tibco/
7972 Fri Oct 24 16:15:08 CDT 2014 com/my/company/MyLogging.class
2045 Wed Oct 08 11:20:42 CDT 2014 config/myLog4j.xml
400 Wed Oct 08 11:20:42 CDT 2014 config/email/bodyDashtemp.st
1583 Wed Oct 08 11:20:42 CDT 2014 schema/Castor-XMLJavaScript.txt
18958 Wed Oct 08 11:20:44 CDT 2014 schema/tibco/TIBCO_EventSchema.xsd
编辑:
我从命令行运行它。 JUnit测试。
编辑:更多信息...
该( core.jar
)是一个依赖项Jar文件。 它包含在JUnit测试类文件的类路径中。
此MyLogging.class
用于正在进行单元测试的类中。 我正在进行单元测试的类实际上是Struts2动作类。 它是单元测试,而不是集成测试。 意思是,此动作类被视为常规类,而不是动作类。
编辑:
Manifest.mf
内容:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: pwa6460_26sr7ifx-20131203_01 (SR7) (IBM Corporation)
还有一个包含MyLogging.class
.jar
加载了earlie。 因为类加载器只能加载一次类,所以使用第一个MyLogging.class
,它的jar没有资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.