2010-11-09 4 views
4

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

  • командной строки
  • сервер App
  • Затмение пусковая
  • Eclipse, удаленный отладчик и т.д.

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

ответ

6

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

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

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

+1

И для статического класса MyClass.class.getResourceAsStream ("myXml.xml"). Оно работает. благодаря – WSK

0

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

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

0

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

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

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

Смежные вопросы