Eclipse: экспортируйте в .jar И включайте файлы ресурсов (МУРАВЕЙ)

Наш проект в затмении приблизительно показывает следующие папки:

application
    - src
    - JRE System Library [1.6]
    - Referenced Libraries
    - lib
    - rsc

В нашем проекте мы хотели бы использовать Файл> Экспорт...> Исполняемый файл JAR

Хорошо это хорошо работает за некоторым исключением: Если мы хотим выполнить наш application.jar, мы все еще должны скопировать папку, rsc/в том же месте как application.jar.

В rsc/, у нас есть другие папки для разделения различных частей. В основном мы загружаем части с помощью кода (хорошо немного измененный, но стиль пути корректен),

strUrl = "file:rsc/properties/Constants.properties";
url = new URL(strUrl);
ImageIcon icon = new ImageIcon(url);

Я мог щелкнуть правой кнопкой по rsc/> Путь Сборки> Использование в качестве Исходной Папки.

Но это не работает также, потому что затмение автоматически не копирует rsc папку в bin/-folder. И затем мы не можем больше выполнять его от терминала (не упакованный в банку)

Править: почему затмение не может обработать это правильно? Почему это имеет проблемы с "вложенными" выходными папками? На Исходной вкладке диалогового окна Пути Сборки я мог легко добавить rsc/-folder с выходным набором папки к bin/rsc/, но это, кажется, не может поместить вложенные папки...


РЕДАКТИРОВАНИЕ 2: Теперь я смог создать XML-файл для создания материала с муравьем и так или иначе сумел включать rsc-папку прямо в банку. Все еще не работает из-за тех же ошибок. Я должен действительно проверить пути ресурсов, являются ли они в JAR или нет? Содержание JAR является теперь следующим:

META-INF/
META-INF/MANIFEST.MF
configurator/
controller/
editor/
gui/
logic/
networking/
rsc/
rsc/gamesettings/
rsc/levels/
rsc/pics/
rsc/properties/
util/

но Java все еще ненавидит меня и броски java.io.FileNotFoundException: rsc/properties/Constants.properties с stacktrace приблизительно 100 строк.


кто-либо идея, как сделать это? спасибо и отношения

7
задан Atmocreations 16 January 2010 в 16:44
поделиться

5 ответов

Если вы отметили RSC в виде исходного папки Eclipse, скопируют его содержимое в выходной каталог. Или вы могли бы просто переместить RSC в SRC , если вы хотите группировать ресурсы на выходе.

Затем вы можете использовать Class.getResource («/ Свойства / константы. LOPERTIES») или Class.GetResource («/ RSC / Properties / Constants.properties») И это Будет работать независимо от того, если ваше приложение упаковано как баночка или работает из источника.

Как Sidenote, файл : протокол работает только с обычными файлами, для доступа к файлам внутри банки, который вы должны использовать что-то вроде новый URL («JAR: файл: приложение. jar! /rsc/properties/Constants.properties ") .

15
ответ дан 6 December 2019 в 07:50
поделиться

Вы можете попробовать: в диалоговом окне «Путь Pature Java» перейдите на вкладку «Библиотеки» и выберите «Добавить папку классов ...». Выберите RSC из диалогового окна выбора папки класса. Содержимое каталога теперь будет включено в файл исполняемого файла.

(Обратите внимание, что сам RCC не будет включен, поэтому вам, возможно, придется добавить новый подкаталог под RSC, чтобы сделать структуру каталогов в банке правой.)

4
ответ дан 6 December 2019 в 07:50
поделиться

Для такого использования я бы рекомендовал использовать Maven , что автоматически делает это при создании банке. Есть даже плагин Eclipse .

Вы также можете использовать муравьев .

2
ответ дан 6 December 2019 в 07:50
поделиться

Я делаю это обычно вручную, в твоем случае JAR -UF FOO.JAR RSC Это включает в себя все ваши ресурсы. Вы можете написать сценарий или сделать это в муравьеве

1
ответ дан 6 December 2019 в 07:50
поделиться

Как вы говорите в Редактировать 2 , что у вас все в одной банке, это должно работать:

String path = "rsc/img/img.gif";
URL url = this.getClass().getResource(path);
ImageIcon icon = new ImageIcon(url);
1
ответ дан 6 December 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: