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

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

public static Properties 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 Ответ

0 голосов
/ 20 сентября 2018

ClassLoader s загружает только те ресурсы, которые находятся в пути к классам.При работе с абсолютными путями к файлам можно использовать класс File для доступа к ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...