在classpathresource中指定文件

时间:2011-05-02 10:37:03

标签: java spring jar log4j classpath

我使用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。但它仍然没有从罐子里挑选。它的告知文件未在指定位置找到。

1 个答案:

答案 0 :(得分:2)

怎么样:

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

或者如果它位于不同的jar文件中:

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