透過 getClass().getResource() 載入檔案
可以使用 getClass().getResource() 方法來載入資源檔案。當從 Eclipse 等開發環境部署時,此方法通常可以無縫運行。但是,從命令列運行應用程式有時會導致空指標異常。
出現此問題的原因是 getClass().getResource() 使用類別載入器來擷取資源。為了可訪問,資源必須包含在類別路徑中。使用 Eclipse 時,來源資料夾及其所有元件(包括資源檔案)預設放置在類別路徑中。因此,可以從與類別相同的套件或目錄中載入資源。
相反,從命令列執行時,不會自動配置類別路徑。包含資源的檔案或目錄必須明確新增到類別路徑中。實現此目的的一種方法是將 CLASSPATH 環境變數設定為檔案或目錄的路徑。
要注意的是,不建議直接使用程式碼中所示的 FileInputStream 來載入資源。相反,使用 getResourceAsStream() 來取得 InputStream。這確保了部署為 JAR 檔案或透過網路載入類別時的相容性。
此外, getResource() 方法可讓您指定資源相對於類別包的位置。例如:
Foo.class.getResourceAsStream("Test.properties")
從與 Foo 相同的套件中載入 Test.properties。
Foo.class.getResourceAsStream("/com/foo/bar/Test.properties")
從 com.foo.bar 套件載入 Test.properties。
遵守這些準則,您可以在從命令列執行應用程式時使用 getClass().getResource() 成功載入資源檔案。
以上是為什麼從命令列運行時 getClass().getResource() 失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!