У меня есть программа, состоящая из двух простых файлов 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
В 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
testClass
определенные в одном из ваших .class
файлов? Перед .java
запуском этой команды убедитесь, что вы скомпилировали файлы source ( ). Кроме того, обычно ваш класс должен быть UpperCamelCase, вместо этого вы можете попробовать переименовать его в TestClass
.
Если вы используете 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 будет расположен в целевом каталоге.
Слишком поздно отвечать на этот вопрос. Но если кто-то сейчас ищет этот ответ, я заставил его работать без ошибок.
Прежде всего, обязательно загрузите и добавьте 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
и он будет генерировать банку файл как - то вроде ProjectName-0.0.1-SNAPSHOT.jar
под target
каталог.
Теперь перейдите в целевой каталог с помощью cd target
.
Наконец, введите java -jar jar-file-name.jar
и да, это должно работать успешно, если в вашей программе нет ошибок.