Я уже нашел другое описание для слияния jar-файлов, таких как Fat-jar.Слияние Jar-файлов?
Однако я искал более простое решение, как в приведенном ниже примере.
баночка -cmvf ../manifest.m е myJar.jar Lib/*. Баночка
Может быть кто-нибудь знает правильный синтаксис для объединения двух или более банок в одну?
Он был объединен, но файл не может быть выполнен.
Добавление классов в Classpath флягу файла
Вам может понадобиться ссылаться на классы в других файлах JAR внутри файла JAR.
Например, в типичной ситуации апплет в JAR-файле, чей манифест ссылается на другой JAR-файл (или несколько разных JAR-файлов), который служит в качестве утилит для целей этого апплета.
Вы указываете классы для включения в поле заголовка Class-Path в файле манифеста апплета или приложения. Заголовок Class-Path имеет следующий вид:
Class-Path: jar1-name jar2-name directory-name/jar3-name
С помощью заголовка Class-Path в манифесте, вы можете избежать необходимости указывать длинный флаг -classpath при вызове Java для запуска приложения. Примечание. Заголовок Class-Path указывает на классы или файлы JAR в локальной сети, а не на файлы JAR в файле JAR или классы, доступные через интернет-протоколы. Чтобы загружать классы в файлы JAR в JAR-файле в путь к классу, вы должны написать собственный код для загрузки этих классов. Например, если MyJar.jar содержит другой JAR-файл с именем MyUtils.jar, вы не можете использовать заголовок класса в манифесте MyJar.jar для загрузки классов в MyUtils.jar в путь класса. Пример
Мы хотим загрузить классы в MyUtils.jar в путь класса для использования в MyJar.jar. Эти два JAR-файла находятся в одном каталоге.
Сначала мы создаем текстовый файл с именем Manifest.txt со следующим содержанием:
Class-Path: MyUtils.jar
Предупреждение: Текстовый файл должен заканчиваться новой строки или возврата каретки. Последняя строка не будет обрабатываться должным образом, если она не заканчивается новой строкой или возвратом каретки.
Затем мы создаем файл JAR с именем myJar.jar, введя следующую команду:.
банки CFM myJar.jar Manifest.txt MyPackage/* класс
Это создает файл JAR с манифестом с следующее содержание:
Manifest-Version: 1.0
Class-Path: MyUtils.jar
Created-By: 1.7.0_06 (Oracle Corporation)
классы в MyUtils.jar теперь загружаются в путь к классу при запуске myJar.jar.
Зачем даже пытаться объединить банки? Что это будет для вас? Почему вместо этого просто убедитесь, что оба отдельных файла jar можно использовать? –
Я попытался объединить его, потому что я не заботился о папке с библиотеками, которая должна находиться в той же папке, что и главная банка. Спасибо –