❶ java語言裡面,ResourceBundle類中的getStringArray方法的使用
可以隨意寫,不同水果之間用空格分開或者用其他特殊字元分開,讀取後在進行處理獲得每一個水果
❷ java獲取properties文件時的Can't find bundle for base name問題
如果發生ResourceBundle.getBundle("myresource") 讀取不到資源文件時,需要注意下面問題.
1,java project
僅僅需要把myresource.properties文件放在src下,如果是放在package下,則程序的filename應該package/myresource
2,j2ee的web project
1,myresource.properties要放在WEB-INF的classes下,
2,如果是使用jar來執行讀取資源文件時,該jar需要添加在lib下面,不僅僅是由IED(eclipse)配置的classpath
解釋:getBundle載入資源文件時,會讀取當前應用的classLoader,遍歷當前的classloader找出classpath,進行資源文件的綁定,如果找不到則會報出
java.util.MissingResourceException。
關鍵在於,如果使用eclipse配置應用,而且是將lib託管給elipse去載入,那麼eclipse中啟動tomcat時,應用的載入lib下的classloader和tomcat讀取應用後載入的class就不會是同一個。
tomcat啟動時,根據tomcat配置的jre,載入應用。而且應用的lib託管給eclipse,由elipse設定的jre載入lib下的jar。此時就會有2個jre環境。
解決方法是:把所有jar放到WEB-INF的lib下,由容器自己載入。當然也要在此載入到classpath下,項目編譯需要。
那個屬性文件也要加上路徑的。於是又開始新征程。這樣為了配活,再來。
static ResourceBundle rb = ResourceBundle.getBundle(ReadSource.class.getPackage().toString().substring(8)+".info");
這樣就解決了路徑問題,只要屬性文件和讀取文件在一起就可以了。