我的Maven項目的pom.xml如下所示:的getClass()的getResourceAsStream()在Maven項目
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>groupId</groupId>
<artifactId>artifactId</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
</project>
在src/main/resources目錄我有一個名爲test的文件。 在src /主/ java目錄我有一個包含以下行的類:
System.out.println(this.getClass().getResourceAsStream("test"));
當的代碼行是在Eclipse中運行,我得到的輸出
[email protected]
當我出口項目爲.jar並運行它我得到輸出
null
我配置了什麼錯?
這個類是單元測試還是真正的生產類?我假設一個高產班。您必須將getResourcesAsStream(「test」)更改爲getResourcesAsStream(「/ test」); – khmarbaise
@khmarbaise你是對的......但爲什麼它與Eclipse的工作? – ben75
此測試資源位於* src/main/resources *文件夾中,還是位於* src/test/resources *文件夾中,包名或不包含?此外,您不需要配置* src/main/java *和* src/main/resources *文件夾,因爲它們是maven中的默認文件夾。 – khmarbaise