2013-01-21 34 views
0

我有一個用Java開發的應用程序,幾乎可以發佈了。但是,我從開發env切換到發佈env並回到開發中遇到問題。例如,在Eclipse中,如果我只想通過運行按鈕進行測試運行,則必須更改代碼,以便顯示我的JMenuItems。Java分發代碼與開發代碼

在我的開發環境,我有這樣的運作良好的情況如下:

JMenuItem[] appItems = new JMenuItem[2]; 
appItems[0] = new JMenu("New"); 
appItems[0].setIcon(new ImageIcon(../POS_System/images/new_icon_sm.png"))); 

但是,正如我附近部署,得到這個在可部署JAR工作,我需要修改代碼:

JMenuItem[] appItems = new JMenuItem[2]; 
appItems[0] = new JMenu("New"); 
appItems[0].setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/new_icon_sm.png"))); 

這是爲了進入JAR並獲得合適的圖像。

我有很多這些JMenuItems。我真的很希望能夠通過Eclipse中的運行按鈕來測試應用程序,以及在不更改代碼的情況下創建JAR。

有沒有簡單的方法來做到這一點?我認爲getResource方法仍然允許我使用JMenus,JMenuItems等,但是當我從Eclipse運行程序時它們不可用。看起來很愚蠢,我必須不斷來回切換。

我欣賞這裏的任何幫助。

+1

這可能是這個問題的重複:http://stackoverflow.com/questions/12290265/load-image-to-program-to-work-with-jar 看到我對這個問題的答案爲例介紹如何使用完全相同的代碼在開發和生產環境中加載圖像。 – CodeBlind

+0

感謝您的迴應。不過,我必須說,這種技術似乎有點「混亂」。我還希望組織我的文件系統,以便圖像不在我保存java包的src文件夾中。任何人有任何想法?如果我必須使用這種技術,我會,但不願意。 – Matt

+0

我知道的唯一的其他選項是將圖像文件夾保存在相對於當前工作目錄的某處。所以在你的IDE中,它會是[項目文件夾] /圖像,然後是[安裝文件夾] /圖像。但對我而言,這看起來更像是一個混亂,而不是將所有不可變圖像保存在最終用戶隱藏的罐子裏。 – CodeBlind

回答

0

如果您不想按照您的建議將圖像移動到src /文件夾中,那麼在Eclipse中,您應該在Project Prooperties - > Java Build Path下更新Eclipse配置並添加一個額外的源文件夾,一個指向你保存圖像的位置。我相信這會解決它。