我正在使用classpathresource来获取文件的资源。在我的代码中,指定了路径,以便从那里选择文件。但是它取了一个同名文件,该文件已经存在于以前的jar中。


我已指定

ClassPathResource resource = new ClassPathResource("/sw/merlot/config/log4j.xml")


其中,log4j.xml是配置文件。

但是它取了一个放在罐子里的log4j.xml-sw/merlot/lib/keyManager.jar!/log4j.xml

(两个log4j.xml都不相同[2个不同的配置文件])

所以我改成

ClassPathResource resource = new ClassPathResource("file:///sw/merlot/config/log4j.xml")


但是它仍然无法正常工作。

我不知道我指定文件的方式是否正确?

我还尝试使用jar指定文件。

ClassPathResource resource = new ClassPathResource("jar:file:///sw/merlot/lib/keyManager111.jar!/log4j.xml")


其中keyManager111.jar包含我想要的log4j.xml。但是它仍然没有从罐子里捡出来。在指定位置找不到其告诉文件。

最佳答案

关于什么:

ClassPathResource resource = new ClassPathResource("classpath:/sw/merlot/config/log4j.xml");


或是否在其他jar文件中:

ClassPathResource resource = new ClassPathResource("classpath*:/sw/merlot/config/log4j.xml");

10-01 11:48