2017-05-13 55 views
0

我已經看過並嘗試了幾種方法,如何做到這一點,我似乎無法做到正確。該程序運行良好。使用的是IntelliJ導出成一個jar文件(使用此視頻 - https://www.youtube.com/watch?v=3Xo6zSBgdgk)後,我運行jar文件時,遇到下列錯誤...使用intellij導出帶有jar文件的圖像

enter image description here

這些線如下...

行#44:setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource(guiImgIconLocName)));與字符串變量guiImgIconLocName = "..\\images\\TitleBarIcon.png"

線#6134:new StartGui();public static void main(String[] args)方法

的一部分,這是我的構造函數片段:

StartGui() { 
    /* 
    * Display everything in GUI to user 
    */ 
    int mainWindowSizeWidth = 800; 
    int mainWindowSizeHeight = 600; 

    setContentPane(backgroundFrame); 
    setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource(guiImgIconLocName))); 
    setTitle("Final Fantasy 7 Level Up Calculator"); 
    add(topFrameScroll, BorderLayout.NORTH); 
    add(centerFrameScroll, BorderLayout.CENTER); 
    addComponentListener(new ComponentAdapter() { 
     @Override 
     public void componentResized(ComponentEvent e) { 
      SwingUtilities.invokeLater(new Runnable() { 

       @Override 
       public void run() { 
        revalidate(); 
        repaint(); 
       } 
      }); 
     } 
    }); 

    setSize(mainWindowSizeWidth,mainWindowSizeHeight); 
    setVisible(true); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 

當創建的文物,我猜有一個步驟,包括圖像(我不是專家,這是我的第一個搖擺項目)... enter image description here

任何人都可以告訴我我失蹤了什麼嗎?

+0

看起來像圖像不在JAR中或不在CLASSPATH中。你能打開JAR並看到它嗎?它在清單中嗎? – duffymo

+0

不清楚你的意思是什麼(猜測src \ META-INF \ MANIFEST.MF)這隻有兩行'Manifest-Version:1.0'和'Main-Class:Main.StartGui'。我不確定JAR文件是否可以看到它。我壓縮了整個項目,所以你可以看看自己 - https://www.dropbox.com/s/oavmfzj2apavcvc/FF7LevelUpStatCalculator.zip?dl=0 –

+0

我沒有下載任何東西。這取決於你,而不是我。 – duffymo

回答

0

保持圖像的資源。在項目根目錄下創建資源文件夾。右鍵單擊資源文件夾,然後選擇「將目錄標記爲 - >資源根目錄」。然後創建jar。

1

您應該引用從jar根(/)開始並使用正斜槓的資源。

Main/StartGui.java:106,更改爲

private final String imgDir = "/images/"; 

重建罐子。