大家好, 我正在创建一个ResourceBundle来加载属性文件。我的文件结构类似于
| ---主要
|
----ResourceBundleLoad.java
| --resource
|
--- resourcebundle.properties
正常情况下,当我将main类和属性文件放在同一个包中时,它意味着它会检索所有属性文件值。如果我分开这两个文件意味着它不起作用。它抛出java.util.MissingResourceException异常。
我的代码是
private static final String BUNDLE_NAME = "ExternalizedLogMessages";
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
请建议我如何解决这个问题
答案 0 :(得分:2)
我通过使用类加载器实现了这一点。 来源是
private static URLClassLoader resourceLoader= null;
/**
* Initialize class loader.
*/
static{
ClassLoader currentThreadClassLoader
= Thread.currentThread().getContextClassLoader();
//assuming that current path is the project directory
try {
resourceLoader
= new URLClassLoader(new URL[]{new File(".").toURI().toURL()},
currentThreadClassLoader);
} catch (MalformedURLException e) {
logger.error(e);
}
}
/**
* Properties bundle name.
*/
private static final String BUNDLE_NAME = "resource.ExternalizedLogMessages"; //$NON-NLS-1$
/**
* Resource bundle object.
*/
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle
.getBundle(BUNDLE_NAME,Locale.US,resourceLoader);