[英]Java getResource not working in a .jar file
我正在嘗試將我從eclipse制作的pacman游戲導出到.jar包中。 問題是雖然在eclipse上一切運行正常,但是當導出.jar時,我使用的資源沒有正確加載。 我把它們放在一個單獨的/ res文件夾中 ,它位於構建路徑上。 我通過以下方式訪問它們:
ClassLoader classLoader = getClass().getClassLoader();
try{
image = ImageIO.read(new File(classLoader.getResource("images/PM0.gif").getFile()));
}
catch (IOException e1) {
e1.printStackTrace();
}
File file = new File(classLoader.getResource("levels/"+fileName).getFile());
我究竟做錯了什么? 這里是我得到的錯誤的一個例子(僅在eclipse上導出的.jar中運行正常)
為了從jar中放置資源,您需要使用getResourceAsStream()
。
它適用於eclipse,因為使用實際文件使用“解壓縮”JAR(或更好的put-prepacked)執行運行時環境。
使用資源時,應始終將它們作為流而不是文件(除非您嘗試做一些非常奇怪的事情)。
嘗試以下方法:
ImageIO.read(classLoader.getResourceAsStream("images/PM0.gif"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.