У меня есть программа, состоящая из двух простых файлов Java Swing.
Как мне сделать исполняемый файл JAR для моей программы?
У меня есть программа, состоящая из двух простых файлов Java Swing.
Как мне сделать исполняемый файл JAR для моей программы?
Файл jar - это просто файл, содержащий набор файлов java. Чтобы сделать файл jar исполняемым, вам необходимо указать, где находится класс main
в файле jar. Пример кода будет следующим.
public class JarExample {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
// your logic here
}
});
}
}
Скомпилируйте свои классы. Чтобы создать банку, вам также необходимо создать файл манифеста (MANIFEST.MF
). Например,
Manifest-Version: 1.0
Main-Class: JarExample
Поместите скомпилированные файлы выходных классов (JarExample.class, JarExample $ 1.class) и файл манифеста в одну папку. В командной строке перейдите в папку, в которой размещены ваши файлы, и создайте банку с помощью команды jar. Например (если вы назовете свой файл манифеста как jexample.mf)
jar cfm jarexample.jar jexample.mf *.class
Будет создан исполняемый файл jarexample.jar.
jar cvfe jarexample.jar com.example.jar.JarExample *.class
- person Powerslave; 24.03.2015
jar
отдельная переменная пути? Я могу использовать команды java
и javac
без проблем, но команда jar
выдает сообщение об ошибке 'jar' is not recognized as an internal or external command
.
- person QWERTY; 03.02.2021
В Eclipse это можно сделать просто следующим образом:
Щелкните правой кнопкой мыши свой проект Java и выберите Экспорт.
Выберите Java - ›Запускаемый файл JAR -› Далее.
Выберите конфигурацию запуска и выберите файл проекта в качестве основного класса.
Выберите папку назначения, в которую вы хотите ее сохранить, и нажмите «Готово».
jar cvfe myjar.jar package.MainClass *.class
где MainClass
- это класс с вашим main
методом, а package
- это пакет MainClass
.
Обратите внимание, что перед этим вы должны скомпилировать ваши .java
файлы в .class
файлы.
c create new archive
v generate verbose output on standard output
f specify archive file name
e specify application entry point for stand-alone application bundled into an executable jar file
Этот ответ вдохновлен комментарием Powerslave к другому ответу.
Error: Could not find or load main class mtx.testClass Caused by: java.lang.ClassNotFoundException: mtx.testClass
- person Anton Stafeyev; 19.08.2020
testClass
определен в одном из ваших .class
файлов? Перед запуском этой команды убедитесь, что вы скомпилировали файлы исходного кода (.java
). Кроме того, обычно ваш класс должен быть UpperCamelCase, вместо этого вы можете попробовать переименовать его в TestClass
.
- person River; 25.08.2020
Если вы используете maven, добавьте в файл pom.xml следующее:
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.path.to.YourMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Затем вы можете запустить mvn package
. Файл jar будет расположен в каталоге target.
Слишком поздно отвечать на этот вопрос. Но если кто-то сейчас ищет этот ответ, я заставил его работать без ошибок.
Прежде всего обязательно загрузите и добавьте maven в путь. [mvn --version
] предоставит вам спецификации версии, если вы правильно добавили путь.
Теперь добавьте следующий код в проект maven [pom.xml
], в следующем коде замените его собственной точкой входа в основной файл, например, [com.example.test.Test] .
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>
your_package_to_class_that_contains_main_file .MainFileName</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Теперь перейдите в командную строку [CMD
] в своем проекте и введите mvn package
, и он сгенерирует файл jar в виде чего-то вроде ProjectName-0.0.1-SNAPSHOT.jar
в каталоге target
.
Теперь перейдите к целевому каталогу по cd target
.
Наконец, введите java -jar jar-file-name.jar
, и да, это должно работать успешно, если в вашей программе нет ошибок.