0
我希望能夠從jar內部加載圖片。圖片將不會從jar的根目錄加載
很多網頁都說要使用我正在使用的確切代碼。有人說使用getClass()
,但我在我的主要方法中運行代碼,我的類不是靜態的。
目前我在主類的主要方法中有以下代碼。
try {
ImageIcon icon = new ImageIcon(BlockWorld.class.getResource("icon.png")); // line 46
window.setIconImage(icon.getImage());
} catch (Exception e) {
e.printStackTrace();
}
我知道一個事實,即icon.png
是在罐子裏的根。這是一個128×128 PNG沒有阿爾法。
一切都很好。當我運行這個jar時,它發佈了以下內容。
java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.Tgwizman.BlockWorld.BlockWorld.main(BlockWorld.java:46)
有沒有人有任何建議?
此外,不應該'getResource'調用的類加載器?正如在'BlockWorld.class.getClassLoader()。getResource(「/ icon.png」)中那樣' – coladict
不是這種情況。代碼現在可用。我不知道爲什麼java沒有jar根目錄作爲默認目錄。它花了我一直試圖弄清楚這一點。當我終於在這裏發佈了一個問題時,我發現http://stackoverflow.com/questions/2593154/get-a-resource-using-getresource將該問題的答案作爲另一個問題的答案的一部分。 – Tgwizman
在處理這類操作時,務必確保爲資源提供正確的路徑,這一點非常重要。 也如上所述,不需要調用類加載器。 – Aris