Работа с файлами Java JAR из cmdline - PullRequest
1 голос
/ 28 сентября 2011

Давайте иметь Java-приложение, содержащееся в файлах A.java и B.java с зависимостью от файла somejar.jar.Вопросы:

  • как создать самодействующий файл JAR со всеми скомпилированными зависимостями и источниками?Основным условием является использование только стандартных утилит Java (предоставляемых с JDK; например: java, javac и jar) и NOT любого из инструментов сборки, таких как Maven, Ant или любые другие.

  • как использовать внешние файлы JAR в моем приложении?Например, алгоритм: if the 'otherjar.jar' is present near the main application JAR, we should call method Moo::method1 from that class, passing the new instance of Foo class to it. Moo and Foo should be present in 'otherjar.jar' file. Still, the 'config.xml' file should be there too.

Ответы [ 2 ]

1 голос
/ 28 сентября 2011

По ссылке, приведенной @ michael667, вас может заинтересовать этот раздел: Добавление классов в путь к классам JAR-файла . В частности это примечание:

Примечание: Заголовок Class-Path указывает на классы или файлы JAR в локальной сети, а не на файлы JAR в файле JAR или на классы, доступные через интернет-протоколы. Чтобы загрузить классы в JAR-файлах из JAR-файла в путь к классам, вы должны написать собственный код для загрузки этих классов. Например, если MyJar.jar содержит другой файл JAR с именем MyUtils.jar, вы не можете использовать заголовок Class-Path в манифесте MyJar.jar для загрузки классов в MyUtils.jar в путь к классам.

Это невозможно сделать со стандартными инструментами Java, если вы не пишете свой собственный загрузчик классов. Существуют инструменты, такие как One-jar , которые могут предоставить вам такой загрузчик классов.

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

Вы также можете найти ответы на этот вопрос полезными: Classpath, включая JAR в JAR

1 голос
/ 28 сентября 2011

Это должно ответить на большинство ваших вопросов: http://download.oracle.com/javase/tutorial/deployment/jar/basicsindex.html

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