У мене є програма, яка складається з двох простих файлів 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і так, це має успішно працювати, якщо у вашій програмі немає помилок.