在 Eclipse 開發 Java 專案時,使用 ImageIcon 載入圖片資源。若採用絕對路徑(如 F:/JavaLib/Java從入門到精通/src/images/Star.jpg),程式能正常執行;但改用相對路徑(如 /images/Star.jpg 或 /src/images/Star.jpg)卻無法載入圖片,導致介面顯示空白。
相對路徑的基準目錄是「專案根目錄」或「類別檔輸出目錄」,而非檔案系統根目錄。以 / 開頭會被解析為絕對路徑,導致找不到資源。
src/images/Star.jpg(若資源置於 src 下)images/Star.jpg(需確保圖片被複製到 bin/images/)getClass().getResource("/images/Star.jpg"),路徑以 / 開頭表示 classpath 根目錄。// 錯誤示範
Image image = new ImageIcon("/images/Star.jpg").getImage(); // 失敗
// 正確示範:使用類別載入器
Image image = new ImageIcon(getClass().getResource("/images/Star.jpg")).getImage();
// 或確保資源複製到輸出目錄後,使用相對路徑
Image image = new ImageIcon("images/Star.jpg").getImage();
src/main/resources(Maven 專案)或 src 目錄下,Eclipse 會自動複製到輸出目錄。Class.getResource() 或 ClassLoader.getResource() 載入資源,避免路徑解析差異。掌握上述技巧,即可徹底解決 Eclipse 中相對路徑無效的困擾,提升專案可移植性。