我的项目具有以下结构:src / test / resources / utility / configuration.xml
我正在尝试使用ClassLoader获取系统中的文件位置
public File getFileFromResources(String fileName){
ClassLoader classLoader = getClass().getClassLoader();
URL resource = classLoader.getResource(fileName);
if(resource == null){
throw new IllegalArgumentException("file not found");
}else{
return new File(resource.getFile());
}
调用方式:
文件file = getFileFromResources(“ Utility / ConfigurationXML.xml”); strFilePath = file.getAbsolutePath();
这给了我该文件的绝对路径,该文件位于目标文件夹中。
上面的代码在Eclipse IDE中工作正常,但是当我创建项目JAR时,getFileFromResources()返回了我
文件:/ C:/Users/UserName/Desktop/ExecutableJAR/TestJAR-tests.jar!/Utility/ConfigurationXML.xml
我正在使用Maven构建我的项目。
正如您的路径所示,重新购买是您测试资源的一部分。生产代码无法访问测试资源(而测试代码可以访问生产资源)。如果您在生产中需要此特定资源,则需要将其移至生产资源文件夹层次结构(通常为)js src/main/resources/utility/configuration.xml 。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。