2013-02-09 62 views
1

我有一個NetBeans項目。在項目目錄中,我創建了一些用於保存資源的附加目錄(圖像)。所以我的一個圖像的路徑是「/res/imgs/on.png」(「res」,其中的所有內容都由我創建)。然後我將「res」目錄添加到項目的源代碼中(右鍵單擊NetBeans中的項目 - > Properties - > Sources - > Add Folder(for Source Packages Folder section))。我已經使用以下代碼訪問了我項目中圖像的URL:Class.getResource()的一個奇怪的行爲

URL url = Class.class.getResource("/imgs/on.png"); 

而且這是成功的 - 就在幾天前。今天,在這段代碼執行之後,url變量被設置爲null。但是當代碼修改爲:

URL url = Class.class.getResource("/imgs"); 

(url!= null)爲true。接下來,我創建了另一個項目,其中我完成了完全相同的操作(即,在項目文件夾中創建了子目錄,向其中加載了一些文件並嘗試執行代碼,類似於這些代碼我上面寫過)。這些操作是成功的。之後,我回到了我的第一個項目(當試圖訪問「/imgs/on.png」時,初始化url爲null)。事實證明,那裏的一切都還好,圖像的URL加載成功...

所以,問題是,這是什麼問題?這是一個NetBeans錯誤,或者我正在做一件錯誤的事情?

+1

「我的代碼*不工作*,我有**不知道**爲什麼..我的代碼*工程*,我有**不知道**爲什麼」 – Maroun 2013-02-09 13:23:56

回答

2

可能由於某些Netbeans編譯/乾淨故障,「on.png」不在類目錄中,因此在類路徑中找不到。在重新啓動或任何可能導致Netbeans重新掃描源文件夾的操作之後,它就回到了那裏。

順便說一句,而不是Class.class.getResource()你應該使用調用者的類,例如, this.getClass().getResource()使用相同的類加載器。