1) 目錄結構:
| build.xml
+---build
| /---classes
| /---com
| /---nana
| /---test
| Scrap.class
|
+---src
| /---com
| /--- nana
| /--- test
| autogen.properties
| Scrap.java
2) 問題描述:
ResourceBundle rb = ResourceBundle.getBundle("autogen.properties",Locale.getDefault());
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name autogen.properties, locale zh_CN
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at com.nana.test.AutoGen.main(AutoGen.java:25)
3) 問題解決:
1.這類resource properties文件是由classloader裝載的,和java文件很類似,所以應該把這類文件加到classpath中。
2. ResourceBundle.getBundle("com.nana.test.autogen")告訴classloader裝載一個資源,其名字是 "autogen",包名爲 "com.nana.test"。
3. 如果想不寫包名,直接獲取autogen.properties,則需要把autogen.properties文件拷貝到classes/com/nana/test/目錄下,和調用它的類文件一起。
ResourceBundle rb = ResourceBundle.getBundle("autogen",Locale.getDefault());