我在file.dat
中有src/main/resources
。
当我尝试通过jar文件测试加载此文件的类时,测试失败,因为它无法在路径(I/O Exception
)中找到该文件。我通过测试获得的路径是:
/home/usr/workspace/project/target/test-classes/file.dat
但target/test-classes
任何想法都不存在该文件?
答案 0 :(得分:19)
来自src/main/resources
的文件将在主程序的运行时期间在类路径上可用,而来自src/main/resources
和src/test/resources
的文件将在测试运行期间在类路径上可用。
检索驻留在类路径上的文件的一种方法是:
Object content = Thread.currentThread().getContextClassLoader().getResource("file.dat").getContent();
.. content
的类型取决于文件内容。您还可以将文件作为InputStream获取:
InputStream contentStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file.dat");
答案 1 :(得分:5)
如果文件在
中的src /主/资源/ FILE.DAT
您可以获取该文件的URL:
的getClass()的getResource( “/ FILE.DAT”);