我使用Eclipse來創建我創建的遊戲的可執行jar文件,但是當我創建jar並運行它時,遊戲中的圖像不再顯示。我在哪裏存儲圖像,以便jar文件可以訪問它們?我在哪裏存儲圖像,以便可執行的jar文件可以訪問它們?
回答
將它們放入罐中,然後使用Class.getResource
,Class.getResourceAsStream
,ClassLoader.getResource
或ClassLoader.getResourceAsStream
來訪問它們。這是最合適的取決於你在做什麼其他,但你可能想是這樣的:
Image image = new Image(Program.class.getResource("/images/foo.jpg"));
...其中Program.class
是同一個jar文件中的任何類。或者,如果你在同一個文件夾作爲類存儲您的圖片(由你展開時),你可以只使用:
Image image = new Image(GameCharacter.class.getResource("knight.jpg"));
這是一個相對資源名。 (相對於有問題的類。)
如果我這樣鍵入,它會顯示「無法實例化類型圖像」。我有一個名爲Resources的類和一個名爲MountainBackground的圖像,所以我寫了Image image = new Image(Resources.class.getResource(「MountainBackground.png」)); – ramuh1231 2013-02-18 16:03:39
@ user2081893:這只是一個隨機的例子 - 因此「類似」。我們不知道您正在編寫什麼類型的應用程序,或者您正在使用哪個圖像類。您應該相應地調整它 - 或者在問題中提供更多信息。 – 2013-02-18 16:08:29
我得到它的工作!謝謝! – ramuh1231 2013-02-18 16:56:15
爲什麼你不能將它們嵌入到jar文件中?
更新:我怎麼沒在我的任務之一是: 內嵌在jar文件中的圖像,以及:
URL url = getClass().getResource("/banana.jpg");
if (url == null)
{
// Invalid image path above
}
else
{
// path is OK
Image image = Toolkit.getDefaultToolkit().getImage(url);
}
import java.net.URL;
URL imageURL = getClass().getResource("/Icon.jpg");
Image img = tk.getImage(imageURL);
this.frame.setIconImage(img);
我的文件結構是:
./ - the root of your program
|__ *.jar
|__ path-next-to-jar/img.jpg
代碼:
String imgFile = "/path-next-to-jar/img.jpg";
InputStream stream = ThisClassName.class.getClass().getResourceAsStream(imgFile);
BufferedImage image = ImageIO.read(stream);
用你自己的替換ThisClassName
,你全部設置!
- 1. 在哪裏可以通過FileInputStream保存文件以便訪問
- 2. 我應該在哪裏存儲NSUserDefaults,以便我可以更新它們?
- 3. 我應該在哪裏存儲圖像,以便我可以與他們一起使用iTunes文件共享?
- 4. 我可以在哪裏存儲自定義控件的圖像?
- 5. 我可以在哪裏放置圖像文件,以便程序可以自動找到它?
- 6. 我在哪裏可以找到存儲在S3中的文件訪問日誌
- 7. 加載圖像,以便它可以在JAR文件和NetBeans中運行
- 8. 在webhosting哪裏存儲我的代碼和圖像文件以及如何訪問它們?
- 9. 我在哪裏可以找到iPhone圖像的存儲庫?
- 10. 我在哪裏可以將默認圖像存儲在android
- 11. 骨幹模型對象....它們在哪裏存儲以便DOM可以與它們交互?
- 12. AppSDK 2.0:我可以在哪裏訪問?
- 13. 我在哪裏可以訪問StringUtils.replaceEach()?
- 14. 從Cmake的find_program保存可執行文件,以便它可以由Python運行
- 15. Actionscript 2.0:我可以在哪裏放置一個類實例,以便我可以從其他類訪問它?
- 16. .NET Compact Framework - 在哪裏放置文件以便它們可以被模擬器訪問
- 17. 我在哪裏可以存儲批處理文件,以便在我的計算機上運行?
- 18. 如何在文件中打包諸如圖像等文件,以便它們可以訪問Servlet?
- 19. 我在哪裏可以得到JTAPI jar?
- 20. 我在哪裏可以在Symfony2中存儲tmp文件?
- 21. 我在哪裏可以訪問windows上的docker文件系統
- 22. 我在哪裏可以查找stylecop規則的命名空間,以便我可以壓制它們?
- 23. JSON在哪裏存在?我在哪裏可以把它
- 24. Docker鏡像容器 - 我可以在哪裏存儲我的文件?
- 25. 哪裏可以指定OpenGTS用來訪問SQL Server的jar文件(sqljdbc4.jar)
- 26. 訪問文件,可執行的JAR
- 27. jQuery Mobile圖標我在哪裏可以找到它們?
- 28. 我在哪裏可以獲得Glusterfs-hadoop插件jar/rpm文件?
- 29. 我在哪裏可以找到Spark 1.6中的jar文件夾?
- 30. 我在哪裏可以下載Akka 2.5.6的庫.jar文件?
http://stackoverflow.com/questions/6373021/how-to-includes-all-images-in-jar-file-using-eclipse – 2013-02-18 15:48:29