当前位置: 首页 > 面试题库 >

无法通过测试用例访问src / main / resources中的文件

宫坚
2023-03-14
问题内容

我有一个file.datsrc/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会在试运行期间可在classpath。

一种检索驻留在类路径上的文件的方法是:

Object content = Thread.currentThread().getContextClassLoader().getResource("file.dat").getContent();

..的类型content取决于文件的内容。您还可以将文件作为InputStream获取:

InputStream contentStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file.dat");


 类似资料:
  • 我在我的maven项目中的src/main/资源下放置了一个文件,文件名只是temp.txt. 当我试图打开文件时: 我得到一个错误: src/main/资源下的所有文件都放在maven下类路径的根文件夹中。那么为什么程序不能在这里找到文件呢?

  • 问题内容: 我在运行以下代码时遇到问题: 从Junit @Before方法中。 这是Maven建立目标文件夹的方式吗? 问题答案: 直接访问。该目录内容被放置在你的CLASSPATH的根。 更准确地说:的内容被复制到中,因此,如果您具有以下项目结构: 它将得到以下测试CLASSPATH内容: 要实际从Java源访问文件,请使用 。

  • 我正在尝试访问src/main/Resources/XYZ/view文件夹中的xsd,其中XYZ/view文件夹是由我创建的,文件夹具有我需要进行xml验证的abc.xsd。 当我每次尝试访问xsd时,结果为null, 我试过了, 1) 2) 以及我为获取资源或类加载器等而进行的更多跟踪。 最后我得到了xsd, 文件文件 = 新文件(新类路径资源(“/src/main/resources/XYZ/

  • 我有一个目录结构如下的maven模块,我想在中获取的路径 我使用进行了尝试,但它给出了一个空值。 无法获取资源的路径

  • 我正在使用gradle构建uber jar,我使用的插件https://github.com/johnrengelman/shadow 我在文件夹中有一个json文件,我在下面的代码中使用它 当我运行uber Jar时,面临以下问题 我的build.gradle是这样的

  • 我有一个maven Spring项目,里面有文件。如何在SpringMVC控制器中读取它。 我正在使用 但是is.