我能夠使用 Maven 正確構建我的 jar。在我的代碼中,我做了以下內容: InputStream input = new FileInputStream("src/configuration_file.txt");然后,當我運行我的 jar 時,我得到 FileNotFoundException。我知道文件 configuration_file.txt 在 jar 中,因為當我用 winrar 打開它時,我可以直接看到它。我認為問題可能與 POM 中的文件夾和路徑有關,但我不確定,我真的不知道還能嘗試什么。
3 回答

慕容708150
TA貢獻1831條經驗 獲得超4個贊
默認情況下,資源文件(您使用的是默認值,因為您沒有在 pom 中定義它)應該轉到 src/main/resources for maven 項目。默認情況下,Maven 從該目錄獲取非源文件并將它們放在結果 jar 中的正確位置。
要訪問 Jar 中的資源,您需要使用類加載器。已多次描述:Reading a resource file from within jar

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
我想你可能會考慮這種方式
InputStream i = this.getClass().getResourceAsStream(File.separator+"configuration_file.txt");
BufferedReader r = new BufferedReader(new InputStreamReader(i));
System.out.println(r.readLine());

慕哥9229398
TA貢獻1877條經驗 獲得超6個贊
試試這個,當我們的資源在 Spring 應用程序的情況下在 jar 中時它會起作用
InputStream resource = new ClassPathResource("src/configuration_file.txt").getInputStream();
添加回答
舉報
0/150
提交
取消