使用getClass().getResource() 載入檔案
使用資源檔案(如屬性檔案)時,常見的方法是使用getClass ().getResource(path) 來載入它們。但是,與在 Eclipse 等 IDE 中執行程式碼相比,從命令列執行程式碼時會出現差異。
Eclipse 中的行為
在 Eclipse 中,getClass().getResource( path) 方法有效地從來源資料夾載入檔案。如果資源檔案(例如 Test.properties)與 Java 檔案放在同一個套件中,則可以在 Eclipse 中存取它,不會出現任何問題。
命令列部署問題
使用命令列在 Eclipse 外部部署應用程式時,資源檔案可能不存在於類路徑中。因此, getClass().getResource(path) 將無法載入文件,從而導致空指標異常。
解決方案
要解決此問題,請確保資源檔案包含在類路徑中。這可以透過將檔案放在與已編譯的類別檔案相同的目錄中或將其打包到 JAR 檔案中來實現。
替代方法
而不是使用 getClass ().getResource(path),考慮使用getClass().getResourceAsStream(path)為資源檔案建立一個InputStream。此方法避免了將 URI 轉換為檔案的需要,並處理從各種來源(例如檔案系統、JAR 檔案或透過網路)載入的檔案。
最後,請注意傳遞給的參數getClass().getResourceAsStream 方法。使用 Foo.class.getResourceAsStream("Test.properties") 將從與 Foo 相同的套件載入文件,而 Foo.class.getResourceAsStream("/com/foo/bar/Test.properties") 將從指定套件。
以上是如何使用“getClass().getResource()”從命令列載入資源檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!