Как добавить зависимости файла .jar при сборке с помощью инструмента командной строки? - PullRequest
5 голосов
/ 21 июля 2011

Довольно простой вопрос.Можно ли это сделать без использования муравьев или мавенов?(И под этим я имею в виду инструмент командной строки)

Обратите внимание, что я не хочу создавать uberjar, я просто хочу, чтобы заархивированный модуль «знал», где находятся его внешние зависимости.

Ответы [ 3 ]

4 голосов
/ 21 июля 2011

Предполагая, что вы говорите о вызове командной строки javac, вы говорите о том, "могу ли я предоставить библиотеки в качестве аргументов javac для выполнения требований во время компиляции".man javac говорит

   -classpath classpath
          Sets  the user class path, overriding the user class path in the
          CLASSPATH environment variable.  If neither CLASSPATH or -class-
          path  is  specified, the user class path consists of the current
          directory.  See Setting the Class Path for more details.

По сути, я подозреваю, что вам просто нужно сказать

javac -classpath path/to/library1.jar Main.java

3 голосов
/ 21 июля 2011

Вы можете сделать это через META-INF/MANIFEST.MF.Вы можете добавить другие jar-файлы в classpath следующим образом:

Manifest-Version: 1.0
Main-Class: org.domain.MyMainClass
Class-Path: lib/slf4j-log4j12-1.5.8.jar lib/slf4j-api-1.5.8.jar

Я считаю, что это работает, только если вы определите Main-Class и запустите свое приложение следующим образом:

java -jar my-app.jar

Такжеобратите внимание, что пути к classpath относятся к основному банку.Поэтому в моем примере структура каталогов должна выглядеть следующим образом:

  • my-app.jar
  • lib
    • slf4j-log4j12-1.5.8.jar
    • slf4j-api-1.5.8.jar
0 голосов
/ 21 июля 2011

Я думаю, что вы ищете файл манифеста, смотрите здесь для более подробной информации http://download.oracle.com/javase/tutorial/deployment/jar/downman.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...