我想訪問我的項目「\ src \ main \ resources」的資源形式,但出於任何原因我只能訪問目標類。
我認爲這個問題由用戶@VGR回答。只是爲了澄清它在另一個詞:
- 你把你的資源在
/src/main/resources
文件夾,這些resouces將保持原樣複製到當你建立你的項目/target/classes
文件夾。
例
src/main/resouces/123.txt -> target/classes/123.txt
src/main/resources/myresources/145.txt -> target/classes/myresources/145.txt
...
現在,如果你運行的程序的IDE裏面你會看到如下:
System.out.println(Main.class.getResource("/123.txt"));
輸出:文件:/ C:/用戶/ Raul/workspace/Serial/target/classes/123.txt
System.out.println(Main.class.getResource("/myresources/145.txt"));
輸出:file:/ C:/ Users/Raul/workspace/Serial/target/classes/myresources/145。TXT
但,如果你打開生成的文件jar
你不會看到target
文件夾,因爲該文件123.txt
將在jar
文件和文件145.txt
根將是該文件夾下myresources/145.txt
。
文件夾目標只是構建工具的輸出目錄,不會打包到jar文件中。
我們以下問題:
的問題是,我不知道如何將目標類導出到我的罐子,或者我怎樣才能得到「的src/main/ressources」的返回值。
要回答這個問題,您必須查看您的項目根目錄中的pom.xml
文件。它應該有一個<packaging>jar</packaging>
條目。如果是這樣,你創建的JAR文件如下:
方案1:通過命令行
mvn clean install
的jar文件將被創建和複製到文件夾target
。
選項2:在Eclipse(例如)
right click on the pom.xml > Run AS > Maven install
jar文件也應該生成並複製到文件夾target
。
注意:在您的屏幕截圖中有兩個jar文件:core-0.0.1-SNAPSHOT.jar
和Serial-0.0.1-SNAPSHOT.jar
;在生成jar文件之前,將它們移除(mvn clean或右鍵單擊>運行AS> Maven clean)。原因是Maven只能爲每個Maven模塊/項目afaik生成一個jar文件。
thx爲偉大的幫助球員 –