2011-08-26 49 views
1

我實際加載OWL文件在我的Java Web應用程序會與下面的代碼:如何訪問其他包文件,而無需使用虛擬類

InputStream is = Dummy.class.getResourceAsStream("content.owl"); 

我在同一個包創建Dummy.classcontent.owl是讓訪問這個文件。

是否有(重構安全)的方式直接加載content.owl而不需要虛擬類?

回答

2

我認爲你應該能夠從任何類獲取該資源,根據放置編譯文件的輸出文件夾的位置給出它的相對路徑。

例如最初在凸出/ SRC/A/B/content.owl包的資源文件和我訪問此資源是在包凸出/ SRC/A/B/C/d/MyClass的類別。 java。在構建項目後,我的可執行文件將進入bin文件夾,並且我訪問資源的類將轉到proj/bin/a/b/c/d/MyClass.class目錄和資源將進入proj/bin/a/b/content.owl

而作爲文件夾被指定爲我的項目的類路徑的輸出文件夾,我可以訪問的代碼資源:

InputStream is = MyClass.class.getResourceAsStream("https://stackoverflow.com/a/b/content.owl"); 
+0

這聽起來不錯。但是這個重構是否安全?如果content.owl的名稱改變了怎麼辦?我如何防止運行時錯誤? –

+0

那麼,我認爲如果由於無法加載該資源而出現的錯誤是可以容忍的,那麼可以檢查輸入流是否爲空,如果不能容忍,則可以嘗試給出資源的路徑作爲附加參數或配置,或者如果可以更改名稱,可能會有其他解決方法。我想你應該最終知道資源的新名稱。 – suat

相關問題