最近在用Eclipse寫Java桌面程序,程序寫到菜單部分(JMenu)的部分,其中 |幫助|菜單下有一個|關於|的菜單項,實現程序說明(彈出小窗口)的功能,窗口內部插入了一張gif,在Eclipse內部運行正常,但是導出爲jar包的時候之後,既脫離Eclipse環境,就不能單獨運行。選擇不同的導出方式不行,網上搜索許久,沒有找到合適的解決方案,安裝FatJar插件導出仍然不能解決問題。
問題分析:考慮到之前我沒有插入gif的時候,導出爲jar包是可以運行的。整個項目的包結構是com.*****.*****.frame包內集合框架類,com.*****.*****.pictures包內集合需要的圖片,JLabel標籤插入圖片的代碼如下:
- ImageIcon logo = new ImageIcon(getClass().getResource("../pictures/logo.gif"));
- //由於picture目錄裏面的內容相對於frame目錄的是../picture/*.*關係
- //後來折騰半天,把logo.gif直接放到和調用圖片的類在同一個目錄,再導出,程序能正常運行,於是參考網友的包結構,在src目錄下建立/p_w_picpaths/目錄,把圖片放到裏面,上面的引用語句改爲
- ImageIcon logo = new ImageIcon(getClass().getResource("/p_w_picpaths/logo.gif"));
- //再導出後問題解決。原來java程序編譯時,會從src目錄逐層往下搜索文件引用