繁体   English   中英

尝试在Jar中获取资源时,URL为什么在这里返回null?

[英]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");

myUrlnull 它不返回资源/文件。

编辑:包括路径的图片。

在此处输入图片说明

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM