Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Путь к lib


Автор: GZep 28.3.2011, 17:27
Здравствуйте в Netbeans при компилировании проекта на Java, подключенные библиотеки копируются в dist/lib/*.jar.

Не смог найти и интернете и в настройках, как сделать чтобы они копировались в dist/*.jar.

Лучшим вариантом вижу решение где можно настроить эту опцию для каждой подключенной библиотеки отдельно.

Автор: COVD 28.3.2011, 17:50
Нет такой настройки. А зачем?  

Автор: GZep 28.3.2011, 22:01
Цитата(COVD @  28.3.2011,  17:50 Найти цитируемый пост)
зачем?  

Есть приложение, которое запускается в консольном режиме. Однако есть также другое, которое является графической оболочкой для этого приложения. Есть третье, которое тоже графическая оболочка но другая или у нее есть другой смысл на существование smile . В общем, один из вариантов.
Цитата(COVD @  28.3.2011,  17:50 Найти цитируемый пост)
Нет такой настройки. 

Ну как же так!? :(

Может как-то по-другому делается подобное, не используя библиотеки?

Автор: COVD 29.3.2011, 18:19
Цитата

Есть приложение, которое запускается в консольном режиме. Однако есть также другое, которое является графической оболочкой для этого приложения. Есть третье, которое тоже графическая оболочка но другая или у нее есть другой смысл на существование 

Непонятно, что смущает? Папка dist первого приложения будет содержать app1.jar . Для второго - app2.jar и  lib/app1.jar , если app1.jar используется как библиотека. Нетбинс в манифесте пропишет, где искать библиотеку. Два разных проекта, результатом билда каждого является папка dist. 
Потом создаете на компьютере, где должны работать приложения,  две папки -  app1 и app2. В каждую кладете соответствующий dist и запускаете их.

Автор: GZep 29.3.2011, 18:54
COVD, так как подразумевается что все получаемые jar'ы исполняемые, хочется чтобы они все лежили параллельно, без всяких вложенных lib.

Автор: COVD 29.3.2011, 19:30
упаковывайте приложение вместе с библиотеками в единый jar.

http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/

Автор: GZep 29.3.2011, 19:31
Перековырял наугад PROJECT_HOME/nbproject/build-impl.xml smile 

Чтобы в MANIFEST.MF не прописывалась lib директория меняем строчку
Код

                        <globmapper from="*" to="lib/*"/>

на:
Код

                        <globmapper from="*" to="*"/>

В каком месте прописана эта директория для копирования библиотек не нашел, так что остается только руками вырезать нужное из lib на один уровень наверх.

На самом деле, может подход какой-то неверный, но все равно кастомизация должна быть. Сделали бы имя это директории в конфиге редактируемой...

Добавлено через 11 минут и 6 секунд
COVD, спасибо, тоже как вариант. Жаль нету такой фичи с помощью простого чекбокса в настройках!

Автор: COVD 29.3.2011, 19:48
Подход верный. Каждое приложение должно лежать в своей папке. В папке приложения также могут хранится проперти-файлы, лог-файлы, ресурсы (картинки) и файл запуска .bat с параметрами jvm. Все относящееся к этому приложению. 

Автор: GZep 31.3.2011, 16:21
COVD, ИМХО верный подход, это возможность кастомизации. У меня, например, 2 исполняемых файла в проекте на выбор. Причем один подгружает другой по принципу библиотеки. И здесь уже не логично исполняемый файл кидать в lib.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)