Необходимость включать в jar файл другие jar файлы возникает практически всегда, когда вы используете библиотечные классы.
В таких случаях, а это 99% от всех случаев, используем заголовок Class-Path:
здесь я указал путь к архиву SBPJavaAcc.jar и к архиву firebirdsql-full.jar, оба архива находятся в папке Lib. Разделитель между архивами – пробел. И что же делать с этим Class-Path? Его надо добавить в манифест.
Рассмотрим пример. В качестве библиотечного jar архива задействуем JarFile.jar – это jar файл из предыдущего раздела. И научимся делать jar файлы в среде Eclipse.
Ещё Jar пример
Создадим новый проект JarInJar, а в нём пакет myJar:
Создадим в пакете myJar класс MainJar (установите флаг public static void main(String[] args)) и изменим созданный мастером код так:
Теперь добавим в проект папку Hilfe: правой кнопкой по корневой папке проекта -> New -> Folder. Добавим внешний архив: правой кнопкой по корневой папке проекта -> New -> Build Path -> Add External Archives… Выбираем JarFile.jar из предыдущего проекта. Результат:
В папке Hilfe сделаем папку Lib, затем, внимание, в проводнике скопируйте файл JarFile.jar из предыдущего проекта и поместите эту копию в нашу папку Lib. Сделать это можно либо прямо в проводнике, либо правой кнопкой по папке Lib -> Paste. Получаем:
Делаем обработчик нажатия на кнопку “Jar пример” (предварительно введите новое поле JarClass jc и укажите импорт import myPack.JarClass). Окончательно получаем:
Сохраните проект.
Итак, что мы имеем? Мы создали класс MainJar, который использует класс JarClass из архивного файла. Это то, что нам нужно. Мы будем делать архив проекта JarInJar, а этот проект использует другой архив: JarFile.jar. Здесь не обойтись без работы с манифестом.
Манифест для jar архива
Правой кнопкой по корневой папке проекта New -> File, назовите файл sbp-program.txt.
В файл 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
и переведите курсор на новую строку, это важно. Получаем:
Обратите внимание, на картинке курсор в начале новой строки.
Сохраните проект. Запустите проект на выполнение и убедитесь, что всё работает.