Необходимо загрузить файл свойств, используя абсолютный путь и загрузчик классов
Итак, у меня есть сторонний класс (мандат компании использовать его), который предоставляет один статический метод, называемый
публичные статические свойства loadProperty(String path);
Внутренне он пытается загрузить, используя следующий код.
ClassLoader a = ClassLoader.getSystemClassLoader();
if (a != null) {
URL u = a.getResource(path); // - - - > returns null
if (u != null) {
u = a.getResource('/' + path); // - - - > returns null
}
if (u == null) {
ClassLoader b = Thread.currentThread().getContextClassLoader();
u = b.getResource(path); // - - - > returns null
if (u != null) {
u = b.getResource('/' + path); // - - - > returns null
}
}
}
Здесь проблема в том, что я всегда получаю ноль.
Если я сохраняю файл в / resources и затем ссылаюсь на него, он находит файл.
После некоторых исследований я обнаружил, что это относится к относительному пути.
Поскольку мое приложение будет работать в разных средах, я хотел сделать его настраиваемым и сохранить файл как внешний файл.
Таким образом, есть ли способ, которым я могу передать путь, который позволит загрузчику загружать файлы с пути? Что-то вроде 'cd..' поднимается на один шаг вверх по каталогу, есть ли способ напрямую перейти в root(windows - C:\ n Unix root ~), а затем начать оттуда и перейти по абсолютному пути?
Оцените помощь.
1 ответ
ClassLoader
Загружать только те ресурсы, которые находятся на пути к классам. При работе с абсолютными путями к файлам можно использовать File
класс для доступа к тем.