this.getClass()。getResource()。openStream(“ file.xls”)返回NullPointerException(MAVEN项目)

时间:2019-06-12 12:43:36

标签: java maven netbeans filepath

我有一个正在运行测试的Maven项目,它们将无法成功完成。问题在于,尝试加载文件时测试会返回NullPointerException(我相信这是由于错误的文件路径,但由于某些原因我无法正确处理)。

这是我的test.java文件的位置:

C:_MY_PROJECTS \ P1 \ trunk \ P1 \ modules \ P1-commons \ P1-core \ src \ test \ java \ si \ smth \ P1 \ test

这是我保留资源的地方:

C:_MY_PROJECTS \ P1 \ trunk \ P1 \ modules \ P1-commons \ P1-core \ src \ test \ resources

我在这里错过了什么吗?它曾经在Ant上运行过-现在我已经为Maven重新构建了项目,但似乎无法正常工作...

代码:

@Test
  public void massImportGDTest_2() throws IOException {
    InputStream in = this.getClass().getResource("resources/gd_mass.xls").openStream();
    CAopParserMass parser = new CAopParserMass(in);
    CInfo[] result = parser.parse();
    assertEquals(11, result.length);        
  }   

在测试运行时,它返回NullPointerException,我认为是文件路径错误的原因吗?对这件事有什么见识吗?

预先感谢, Bg

1 个答案:

答案 0 :(得分:0)

我将文件放在 C:\ Users \ MyProfile \ Documents \ MyProject \ Repo \ java-platform \ src \ main \ resources \ reports

这对我来说是

java.io.InputStream in = this.getClass().getResource("/reports/gd_mass.xls").openStream();

将“ /”更改为“ \”,由于它从此处开始,因此不必表示“资源”。试试这个:

InputStream in = this.getClass().getResource("/gd_mass.xls").openStream();