Я пытаюсь прочитать свойства, которые находятся снаружи файла jar моего кода. Используя ResourceBundle
, но его невозможно прочитать файл свойства locations.properties
. Файл свойств находится под папкой resource
, и обе папки jar
и resource
находятся в том же каталоге.Невозможно найти ресурс за пределами jar
myDir
--> myJar.jar
--> resource
-->locations.properties
Я не знаю, что случилось с моим кодом ниже:
public static ResourceBundle getResourceBundle(String fileName) throws MalformedURLException{
if (resourceBundle == null) {
File file = new File("resource/"+fileName);
URL[] urls = { file.toURI().toURL() };
ClassLoader loader = new URLClassLoader(urls);
resourceBundle = ResourceBundle.getBundle(fileName, Locale.getDefault(), loader);
}
return resourceBundle;
}
И это, как я вызова ResourceBundle
объект:
ResourceBundle locationBundle = null;
try {
locationBundle = ReadPropertyUtil.getResourceBundle(propFileName);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Пожалуйста, руководство, что не так с этим кодом и Каков правильный способ чтения внешнего файла свойств.
возможного дубликата [Загрузка ресурсов с использованием GetClass() .getResource()] (http://stackoverflow.com/questions/ 2343187/load-resources-using-getclass-getresource) – CMPS