簡體   English   中英

Java/JavaFX,從項目和 jar 文件中讀取文件

[英]Java/JavaFX, read files from inside project and jar file

我的項目文件夾中有一些我想閱讀的圖像和 xml 文件。 例如,我的代碼在src/app/MyClass.java 我想閱讀的文件在res/filename.pngres/filename.xml

所以如果我想給我的項目一個圖標,我會這樣做(如果通過 Eclipse 運行可以正常工作):

primaryStage.getIcons().add(new Image("file:res/icon.png"));

問題是當我通過 .jar 文件運行它時,圖像沒有出現。 其他文件也一樣。 通過jar文件找不到xml文件。

我試過這個:

InputStream input = getClass().getResourceAsStream("res/icon.png");
primaryStage.getIcons().add(new Image(input));

但是 Eclipse 說inputnull 我究竟做錯了什么? 任何幫助將不勝感激!

關於為什么會這樣,有一些可能性。 第一個是您正在運行 JAR 而不是可執行 Jar 文件。 程序無法顯示圖像的另一個可能原因是導出時您沒有單擊提取所需的庫按鈕,如下所示。 如果這些都不是下面的案例評論。

單擊完成后,您應該可以毫無問題地運行該文件。


嘗試創建一個名為resourcessource folder (右鍵單擊項目 > 新建 > 源文件夾)並將所有內容放入其中。 您現在可以執行getClass().getResourceAsStream("/file.ext")並且它不應該是null

如果在創建 jar 文件后還有任何其他錯誤(按照上圖),您可以通過命令行/終端運行它,它應該會顯示您可能遇到的任何錯誤:

java -jar jarfile.jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM