Как в jar файл включить другой jar файл?

Необходимость включать в jar файл другие jar файлы возникает практически всегда, когда вы используете библиотечные классы.

В таких случаях, а это 99% от всех случаев, используем заголовок Class-Path:

Class-Path: Lib/SBPJavaAcc.jar Lib/firebirdsql-full.jar

здесь я указал путь к архиву SBPJavaAcc.jar и к архиву firebirdsql-full.jar, оба архива находятся в папке Lib. Разделитель между архивами – пробел. И что же делать с этим Class-Path? Его надо добавить в манифест.

Рассмотрим пример. В качестве библиотечного jar архива задействуем JarFile.jar – это jar файл из предыдущего раздела. И научимся делать jar файлы в среде Eclipse.

Ещё Jar пример

Создадим новый проект JarInJar, а в нём пакет myJar: в jar файл включить другой jar файл

Создадим в пакете myJar класс MainJar (установите флаг public static void main(String[] args)) и изменим созданный мастером код так:

Теперь добавим в проект папку Hilfe: правой кнопкой по корневой папке проекта -> New -> Folder. Добавим внешний архив: правой кнопкой по корневой папке проекта -> New -> Build Path -> Add External Archives… Выбираем JarFile.jar из предыдущего проекта. Результат: в jar файл включить другой jar файл

В папке Hilfe сделаем папку Lib, затем, внимание, в проводнике скопируйте файл JarFile.jar из предыдущего проекта и поместите эту копию в нашу папку Lib. Сделать это можно либо прямо в проводнике, либо правой кнопкой по папке Lib -> Paste. Получаем: в jar файл включить другой jar файл

Делаем обработчик нажатия на кнопку “Jar пример” (предварительно введите новое поле JarClass jc и укажите импорт import myPack.JarClass). Окончательно получаем:

Сохраните проект.

Итак, что мы имеем? Мы создали класс MainJar, который использует класс JarClass из архивного файла. Это то, что нам нужно. Мы будем делать архив проекта JarInJar, а этот проект использует другой архив: JarFile.jar. Здесь не обойтись без работы с манифестом.

Манифест для jar архива

Правой кнопкой по корневой папке проекта New -> File, назовите файл sbp-program.txt. в jar файл включить другой jar файл

В файл sbp-program.txt вводим текст: Manifest-Version: 1.0
Created-By: SBP-Program
Main-Class: myJar.MainJar
Class-Path: Lib/JARFile.jar
X-COMMENT: Lib folder content was added manually
и переведите курсор на новую строку, это важно. Получаем: в jar файл включить другой jar файл

Обратите внимание, на картинке курсор в начале новой строки.

Сохраните проект. Запустите проект на выполнение и убедитесь, что всё работает.

Оглавление