Добавьте дополнительные библиотеки .jar при создании запускаемого .jar через командную строку - PullRequest
0 голосов
/ 21 марта 2019

Я работаю над воспроизведением функциональности Eclipse «Экспортировать исполняемый файл .jar» с помощью вызовов командной строки непосредственно из самой java-программы. Таким образом, эти команды должны выполняться после того, как Eclipse скомпилирует проект. Мне это нужно для лучшего контроля того, какие файлы попадают в .jar, и для ускорения процесса разработки.

Следующая команда успешно упаковывает структуру и классы из каталога «bin», а также создает файл manifest.mf с правильным основным классом, так что myjar.jar можно запустить.

ProcessBuilder builder = new ProcessBuilder("jar", "cvfe", "myjar.jar", "main.MainControler", "-C", "bin", "/");

Process process = builder.start();

Однако в моем проекте есть несколько библиотек (файлов .jar), добавленных в путь к классам через диалоги пути к классам в Eclipse. Например я использую библиотеку pi4j. Я ожидал, что его внутренний каталог и структура классов (что-то вроде «com.pi4j. ***. Class») будут добавлены в каталог «bin», когда eclipse компилирует и выполняет программу. Однако его там нет, и поэтому он никогда не заканчивается в «myjar.jar» (и я получаю ошибки отсутствия классов при запуске .jar).

Когда я использую функцию экспорта Eclipse, файлы там есть.

Что мне нужно сделать, чтобы экспортировать файлы .class из дополнительных библиотек .jar, чтобы их можно было добавить?

Огромное спасибо заранее:)

1 Ответ

0 голосов
/ 21 марта 2019

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

Прежде всего: если вы не хотите использовать Eclipse для сборкиЗатем избегайте использования проекта для выполнения первой части работы (т.е. компиляции): вы можете выполнить весь процесс из командной строки, и это даст вам еще больший контроль над процессом сборки.

Второе предложение: сделатьне изобретать велосипед.Если вы хотите собрать из командной строки, вы можете использовать Ant или Maven .В частности, вы можете использовать Eclipse для генерации скрипта сборки Ant, который работает как «экспортировать исполняемый файл .jar», затем вы можете настроить этот скрипт так, как вам нужно: в Eclipse щелкните правой кнопкой мыши по проекту и выберите

Export / General / Ant Buildfiles

, и вы получите скрипт build.xml для использования с Ant.

...