Как определить путь статического файла в Java? - PullRequest
4 голосов
/ 09 ноября 2010

Как мне найти путь к файлу xml (статический myXml.xml), который встроен в jar?Очевидно, не по абсолютному пути, но я сталкиваюсь с той же проблемой с относительными путями.Я не могу получить его относительно домашней папки, поскольку Java возвращает другую домашнюю папку в зависимости от того, откуда я вызываю вызывающий класс Java.Например, из:

  • командной строки
  • Сервер приложений
  • Средство запуска Eclipse
  • Удаленный отладчик Eclipse и т. Д.

Есть ли какой-нибудь способ, которым мой класс доступа (упакованный в тот же самый jar) может получить доступ к встроенному xml независимо от того, где находится файл jar и кто пытается получить к нему доступ?

Ответы [ 3 ]

6 голосов
/ 09 ноября 2010

Что вам нужно сделать, это использовать загрузчик классов для загрузки файла:

InputStream stream = this.getClass().getClassLoader().
                                              getResourceAsStream("myXml.xml");

Приведенный выше код предполагает, что файл находится на верхнем уровне вашей банки.

0 голосов
/ 09 ноября 2010

Вы можете использовать ClassLoader # getResource (..) , чтобы получить InputStream файла из пути к классам:

Object.class.getClassLoader().getResource().openStream()

Также есть некоторые другие методы в ClassLoader, которые могут быть полезныв вашем случае.

0 голосов
/ 09 ноября 2010

Вы пробовали методы getResource и getResourceAsStream в классе Class? Обычно это то, к чему я должен прибегать в таких ситуациях.

Надеюсь, это поможет.

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