У мене є програма, яка складається з двох простих файлів 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 за допомогою команди 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
Перед запуском цієї команди переконайтесь, що ви скомпілювали вихідні ( ) файли. Крім того, зазвичай вашим класом має бути 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
і він створить файл jar як щось на зразок ProjectName-0.0.1-SNAPSHOT.jar
під target
каталогом.
Тепер перейдіть до цільового каталогу за допомогою cd target
.
Нарешті, введіть java -jar jar-file-name.jar
і так, це має успішно працювати, якщо у вашій програмі немає помилок.