getClassLoader()。getResource(“filename”)。getFile()包含文件路径

时间:2015-11-24 02:40:52

标签: java maven classloader file-handling

我正在更新系统以满足客户的其他要求。它是一个在java 1.4.2上运行的旧系统,使用maven和jdk 1.5.0_11编译。

系统的一部分是加载属性文件。使用的语法是:

String fileName = "MyClass".class.getClassLoader().getResource("MyFile.txt").getFile();
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(fileName);

我没有更改该代码的任何内容。但是,当我在Linux中部署jar文件时,它会创建一个不正确的文件路径。目前,MyFile.txt与编译的jar位于同一文件夹内,Old JAR上面的代码获取正确的文件路径。但是,使用新编译的jar文件,生成的MyFile.txt文件路径包含文件路径中Jar的名称。请参阅下面的更多解释。

假设已编译的Jar是CompiledJarv01.jar并且部署在/ Apps / myJar文件夹中(MyFile.txt也在里面),MyFile.txt的完整文件路径是

旧JAR文件:/Apps / myJar / MyFile.txt

新JAR文件:/Apps / myJar /CompiledJarv01.jar!/ MyFile.txt

我不确定为什么Jar文件名包含在MyFile.txt文件路径中。这在运行应用程序时会导致FileNotFoundException。

0 个答案:

没有答案