Необходимо загрузить файл свойств, используя абсолютный путь и загрузчик классов

Итак, у меня есть сторонний класс (мандат компании использовать его), который предоставляет один статический метод, называемый

публичные статические свойства 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 класс для доступа к тем.

Другие вопросы по тегам