Создание файла JAR, который содержит другие файлы библиотеки - PullRequest
6 голосов
/ 17 января 2012

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

Как мне решить проблему пути к классу?

Ответы [ 2 ]

9 голосов
/ 17 января 2012

Я думаю, вы можете попробовать это так;

Вот простой пример для вашего вопроса.Во-первых, мы предполагаем, что у нас есть каталог проекта, такой как D:\javademo.В этом рабочем каталоге мы создаем основной класс HelloWorld.java , и он содержит другие наши JAR-файлы, например commons-lang.jar.Теперь мы должны заархивировать наши основные классы HelloWorld и commons-lang.jar в файл test.jar.

Сначала мы должны отредактировать наш файл манифеста, чтобы мы могли указать наш путь к классу и основной класс следующим образом:

Manifest-Version: 1.0 
Created-By: tony example
Class-Path: test.jar commons-lang.jar
Main-Class: org.tony.java.HelloWorld

Мы назвали этот файл test.mf.Теперь мы используем команду jar для генерации нашего JAR-файла следующим образом:

jar -cvfm test.jar test.mf -C ./ .

Затем он сгенерирует файл JAR test.jar.Вы можете использовать эту команду для запуска этого основного класса, используя команду Java:

java -jar test.jar

Это мое решение.Я надеюсь, что это даст вам что-то полезное ...

0 голосов
/ 17 января 2012

Для этого следует использовать сторонние библиотеки.Например, OneJar .Вам придется создать окончательный файл JAR с помощью инструмента OneJar (например, Ant task) вместо стандартных инструментов JRE .

При запуске такого JARфайл, класс обслуживания OneJar запускается вместо вашего.Затем этот класс загружает файлы JAR, упакованные внутри, а также ваши классы и запускает ваш основной класс.

Уже есть похожие вопросы и ответы.Например: вопрос переполнения стека Самый простой способ объединить выпуск в один файл JAR .

...