Как создать JAR, который зависит от другого JAR? - PullRequest
2 голосов
/ 10 февраля 2009

Я пытаюсь создать модульное приложение, и у меня возникла проблема, потому что у меня есть два модуля, один из которых зависит от другого.

Например: модуль 1 имеет класс, который импортирует классы из модуля 2.

Я поместил следующую строку в мой Manifest.txt модуля 1:

Class-Path: modulo_2.jar

... но я получаю сообщение об ошибке при создании jar, потому что не могу разрешить импорт классов из модуля 2, который мне нужен в модуле 1. Несмотря на ошибки, jar создается. После развертывания проекта у меня по-прежнему возникает та же ошибка, в которой говорится, что мои классы не могут разрешить импорт, и у кого-то есть идеи, как мне это сделать.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2009

Когда вы создаете jar (время компиляции), module_2.jar должен быть в пути к классу. Вы должны сначала собрать module_2.jar и добавить его в путь к классам. Если вы используете командную строку для сборки:

javac -cp module_2.jar my_java_files

Во время выполнения модуль module_2.jar должен находиться в том месте, которое вы указали в файле манифеста. Если вы использовали Class-Path: module_2.jar, поместите module_2 в ту же папку, что и module_1, и запустите его так:

java -jar module_1.jar MyMainClass
0 голосов
/ 10 февраля 2009

В качестве альтернативы, вместо того, чтобы возиться с манифестами самостоятельно, вы можете попробовать собрать с Maven2, который имеет очень хорошее управление зависимостями, и использовать плагин сборки для создания распространяемого tar.gz, в который будет отправляться ваше приложение с его зависимостями.

...