Ява библиотека внутри банки - PullRequest
4 голосов
/ 13 июля 2011

Я создал файл mytest.jar с библиотекой, которая содержит около 30 библиотечных файлов, также jar. Можно ли поместить все библиотечные фляги в mytest.jar, чтобы мне нужно было распределить только 1 флягу? Может быть, это можно сделать с помощью манифеста? Спасибо.

Ответы [ 3 ]

7 голосов
/ 13 июля 2011

Загрузка классов из jars-inside-jars невозможна со стандартным загрузчиком классов Java. Однако это возможно с помощью пользовательского загрузчика классов, например, UberJar работает.

Плагин maven shade использует другой подход. Он распакует все банки, от которых вы зависите, и упакует их (вместе с вашими собственными классами) в одну большую банку. Тогда можно использовать обычный загрузчик классов. Это проще, и это также возможно без maven, используя jarjar .

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

Не из коробки. Тем не менее, One-Jar предоставляет решение. Он отлично работает для автономных приложений, что, как я полагаю, вы делаете.

Если вместо этого вы создаете апплет, One-Jar не будет работать.

1 голос
/ 13 июля 2011

Обычно для этой цели используют инструмент для перепаковки банок, например jarjar.

...