我有一个file.dat
在src/main/resources
.
当我尝试测试通过 jar 文件加载此文件的类时,测试失败,因为它无法在路径 ( I/O Exception
) 中找到该文件。我通过测试得到的路径是:
/home/usr/workspace/project/target/test-classes/file.dat
但该文件不存在target/test-classes
任何想法?
我有一个file.dat
在src/main/resources
.
当我尝试测试通过 jar 文件加载此文件的类时,测试失败,因为它无法在路径 ( I/O Exception
) 中找到该文件。我通过测试得到的路径是:
/home/usr/workspace/project/target/test-classes/file.dat
但该文件不存在target/test-classes
任何想法?
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");
如果文件在
src/main/resources/file.dat
您可以获取文件的 URL:
getClass().getResource("/file.dat");