2010-08-30 50 views
5

我要放置在某個文件夾我的屬性文件,但我不能夠讀取他們,因爲我們可以在靜態getBundle()方法上資源包對象僅指定包名稱。在Java中使用ResourceBundle類時,我們可以使用屬性文件指定目錄路徑嗎?

假設包是:myFile.properties
當前的路徑是:SRC
我要保持我的屬性文件中:SRC/TEMP

所以,當我使用:

ResourceBundle.getBundle("temp/myfile", currentLocale); 

它拋出一個異常,「找不到捆綁」。我想要一些方法來指定路徑。請給我一些方法來做到這一點。

謝謝

回答

9

使用此:

ResourceBundle.getBundle("temp.myfile", currentLocale); 

ResourceBundle.getBundle呼叫提供的baseName應該是一個完全合格的類名。所以它必須用點來分隔。另外請注意,這使得您的java代碼中的temp包(我認爲這不是一個好主意)。最好把屬性文件放在一個合適的包中,比如com.xyz.abc。然後您可以使用它訪問它

ResourceBundle.getBundle("com.xyz.abc.myfile", currentLocale); 
+0

抱歉,這是行不通的 – 2010-08-30 06:43:53

+0

但我把「myFile.properties」成pefect包,其仍發現失蹤@ run。 我把它按你的建議: 「com.xyz.my文件」 這是否適合你 – 2010-08-30 07:04:12

+0

我是否需要通過評論或使用註釋提及屬性文件中的某些內容? – 2010-08-30 07:09:14

3

可能是您使用了錯誤的文件名(myfile!= myFile)。

對於classpath中的目錄temp文件myFile.properties,此代碼應工作:

ResourceBundle.getBundle("temp.myFile"); 
+0

我有一個文件 「tagValue.properties」,在 「SRC」 和 「SRC/TEMP」 目錄拷貝,但是當我使用: - 束= ResourceBundle.getBundle( 「tagValue」); 它的工作原理 但是當我使用: - bundle = ResourceBundle.getBundle(「temp.tagValue」); 它拋出 「java.util.MissingResourceException:找不到基本名稱temp.tagValue的包」 – 2010-08-30 07:33:44

+1

@Kuri - 檢查您的類路徑。我期望使用你的ClassLoader的'getResource(「/ temp/tagValue。屬性「);方法也會失敗(返回null)如果沒有關於運行時環境的更多信息(類路徑參數,類二進制位置等),就不可能診斷問題 – McDowell 2010-08-30 10:12:29

+0

是的,麥克道威爾先生你是對的,它的給我null(「temp/tagValue.properties」),但是當我使用它(「tagValue.properties」),它給我的文件的絕對路徑 okey現在我得到了問題 非常感謝。 – 2010-08-30 12:04:55

相關問題