我知道我可以从 src/test/resources 加载一个文件:
getClass().getResource("somefile").getFile()
但是我怎样才能获得 src/test/resources 目录 的完整路径,即我不想加载文件,我只想知道目录的路径?
原文由 Rory 发布,翻译遵循 CC BY-SA 4.0 许可协议
我知道我可以从 src/test/resources 加载一个文件:
getClass().getResource("somefile").getFile()
但是我怎样才能获得 src/test/resources 目录 的完整路径,即我不想加载文件,我只想知道目录的路径?
原文由 Rory 发布,翻译遵循 CC BY-SA 4.0 许可协议
您不需要弄乱类加载器。事实上,这是一个坏习惯,因为类加载器资源在 jar 存档中时 不是 java.io.File 对象。
Maven 在运行测试之前自动设置当前工作目录,所以你可以使用:
File resourcesDirectory = new File("src/test/resources");
resourcesDirectory.getAbsolutePath()
如果这是您真正需要的,将返回正确的值。
如果您希望测试通过文件系统访问数据,我建议创建一个 src/test/data
目录。这使您清楚地知道您在做什么。
原文由 Steve C 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
尝试使用
ClassLoader
类:A
ClassLoader
负责加载类。每个类都有对ClassLoader
的引用。此代码从资源目录返回File
。调用getAbsolutePath()
返回其绝对值Path
。Javadoc
ClassLoader
: http ://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html