如果要保留代码,可以尝试在运行/调试配置中更改工作目录(组合框中的第一个条目,可以访问要运行的内容)将此设置为您的模块根目录。但更喜欢其他建议的方法:
ClassLoader.getSystemResourceAsStream(youPath)
还是我的首选:
getClass.getResource(youPath)
要么
getClass.getResourceAsStream(youPath)
路径中的前导“ /”表示项目的工作目录,而没有“ /”表示当前类的相对目录。
我将最后一种解决方案用于测试:我将测试数据资源放在与测试源相同的程序包级别,或放在子目录中,以避免程序包太乱。
这样,我可以进行简单的调用而无需复杂的路径,而不必处理工作目录:
project-root
- module A
- src
- test
- rootfile.txt
- my-complicated-package-naming-root
- mypackage
- Test.java
- testResource.xml
我可以这样获取文件:
final URL rootfile= Test.class.getResource("/rootfile.txt");
final URL testResource= Test.class.getResource("testResource.xml");