Очень вопрос о нобе. У меня есть класс 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
но он жалуется на отсутствие сторонних библиотек. Как я могу запустить свою банку (или, возможно, построить жирную банку). Я просто хочу запустить свою программу из командной строки. благодаря
Если вы используете 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>
В банке есть файл манифеста под названием 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
Поскольку вы сказали, что используете Eclipse, знаете ли вы, что вы можете экспортировать исполняемый JAR и все его зависимости через IDE? Щелкните правой кнопкой мыши проект и выберите "Экспорт". Найдите "Runnable JAR". Вы должны увидеть следующее:
Теперь у вас есть несколько вариантов:
Извлеките необходимые библиотеки в созданный JAR.
Это распакует сторонние JAR и переупаковывает их вместе с вашим классом в один JAR.
Пакет требует библиотеки в сгенерированный JAR.
Это будет включать сторонние JAR в ваш JAR, а также некоторую специальную магию Eclipse, чтобы распаковать их, когда это необходимо.
Скопируйте необходимые библиотеки в подпапку
Это скопирует сторонние JAR файлы в папку, а затем обновит манифест вашего JAR, добавив ссылки относительного файла JAR сторонних разработчиков на ваш путь к классам.