Наш проект в Eclipse приблизительно показывает следующие папки:
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 /> Build Path> Use as Source Folder.
Но это тоже не работает, потому что eclipse автоматически не копирует папку rsc в папку / bin. И тогда мы больше не сможем запустить его из терминала (не упакованный в jar)
РЕДАКТИРОВАТЬ : почему затмение не может справиться с этим правильно? Почему возникают проблемы с «вложенными» выходными папками? В закладке Source диалога Build Path я мог бы легко добавить папку rsc / с выходной папкой, установленной в bin / rsc /, но, похоже, она не может помещать вложенные папки ...
РЕДАКТИРОВАТЬ 2 : Теперь я смог создать xml-файл для сборки содержимого с помощью ant, и каким-то образом мне удалось включить папку rsc прямо в jar. Все еще не работает из-за тех же ошибок. Мне действительно нужно проверять пути к ресурсам, находятся ли они в 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
со стеком около 100 строк.
Кто-нибудь знает, как это сделать? спасибо и привет