Как мой проект может получить доступ к своей папке «resources» как при запуске в Eclipse, так и из jar-файла, упакованного Maven? - PullRequest
0 голосов
/ 17 августа 2011

Я работаю с проектом Maven в Eclipse (с помощью плагина m2e). Когда я упаковываю свой проект в jar-файл (mvn install), все файлы из «ресурсов» находятся в корне jar.

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

File file = new File("foo.txt");

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

File file = new File("src/main/resources/foo.txt");

Что я должен сделать, чтобы решить эту проблему?

Ответы [ 2 ]

1 голос
/ 17 августа 2011

Чтобы получить доступ к ресурсам вашей программы, не используйте File, FileInputStream и подобные классы.Они не будут работать ни для чего внутри jar-файла.

Вместо этого используйте Foo.class.getResource(...) или .getResourceAsStream() для доступа к вашим ресурсам.(Прочтите документацию, прежде чем сделать это.)

Я не уверен, может ли программа, запущенная из Eclipse, получить к ним доступ - пожалуйста, попробуйте и сообщите!

0 голосов
/ 17 августа 2011

Ваша конфигурация пакета в Eclipse неверна, потому что он видит src / main / resources как пакет, а не исходную папку.

Конфигурация в Eclipse должна выглядеть следующим образом: enter image description here

...