Как включить сторонние jar-файлы при запуске java-программы

1

Очень вопрос о нобе. У меня есть класс java

package org.foobar;
import thirdparty_jar1;
import thirdparty_jar2;

public class FooBar{
  public static void main(String[] args){
   // some code
 }
}

Я использую eclipse в качестве своего идеала, и я добавил эти три стороны jar 1 и jar 2 в свой путь сборки. и затем я начал экспортировать банку. Теперь у меня есть файл foobar.jar и теперь я хочу запустить его.

Я сделал java -cp/path/to/foobar.jar org.foobar.FooBar

но он жалуется на отсутствие сторонних библиотек. Как я могу запустить свою банку (или, возможно, построить жирную банку). Я просто хочу запустить свою программу из командной строки. благодаря

  • 0
    Вам необходимо установить путь к классу в манифесте jar-файлов, чтобы включить пути к зависимостям.
  • 0
    При экспорте вы можете включить необходимые библиотеки снаружи, внутри сгенерированного jar. Я рекомендую вам поиграть с опциями.
Теги:
maven
jar

3 ответа

1

Если вы используете Maven, вы можете добавить это в свой файл pom.xml. Это создаст дополнительную "жирную" банку всякий раз, когда вы будете строить с Maven. Он находится в разделе "build.plugins":

<build>
    <plugins>

        ...

        <!--
            The plugin below creates an additional, executable JAR with all dependencies
            included in it.
        -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>attached</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>${package}.FooBar</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

        ...

    </plugins>
</build>
1

В банке есть файл манифеста под названием MANIFEST.MF под папкой META-INF. Это содержит сведения о файле jar, главном классе и т.д. Eclipse создает один по умолчанию, вы можете изменить это или указать свой собственный файл манифеста.

См. http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html и Понимание манифеста по умолчанию.

Чтобы добавить библиотеки в путь к классам, вам необходимо добавить путь к файлам манифеста, например:

Class-Path: jar1-name jar2-name directory-name/jar3-name

См. Добавление классов в путь к файлу класса JAR

0

Поскольку вы сказали, что используете Eclipse, знаете ли вы, что вы можете экспортировать исполняемый JAR и все его зависимости через IDE? Щелкните правой кнопкой мыши проект и выберите "Экспорт". Найдите "Runnable JAR". Вы должны увидеть следующее:

Изображение 174551

Теперь у вас есть несколько вариантов:

Извлеките необходимые библиотеки в созданный JAR.

Это распакует сторонние JAR и переупаковывает их вместе с вашим классом в один JAR.

Пакет требует библиотеки в сгенерированный JAR.

Это будет включать сторонние JAR в ваш JAR, а также некоторую специальную магию Eclipse, чтобы распаковать их, когда это необходимо.

Скопируйте необходимые библиотеки в подпапку

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню