classloader.getResource返回带有war文件的路径

时间:2018-10-19 07:27:38

标签: java classloader war

我无法理解计算机上此行的行为:

File versionFile = new File(classLoader.getResource("Version.txt").getFile());

面对classLoader.getResource(“ Version.txt”)。getFile()返回类似以下路径:

C:****\ServiceManager\target\ServiceManager.war!\WEB-INF\classes\Version.txt

似乎java在我的war文件中生成了一个路径,但是它不起作用。但是,使用完全相同代码的同事在我们的输出文件夹中有一条普通路径。

有人有主意吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我发现了此问题的根本原因,这是项目配置问题。

在webshpere自由服务器中,如果您具有多个项目的依赖项,则必须进入属性project> Deployment assembly>并添加您的项目。之后,服务器将生成一个包含不同节点的myProject.war.xml。某些节点具有带有路径的targetInArchive属性,并且此配置迫使类加载器在生成的war中返回路径。

希望这些信息对某人有帮助。