簡體   English   中英

Java getResource無法在.jar文件中工作

[英]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.

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