Як створити виконуваний файл JAR?


82

У мене є програма, яка складається з двох простих файлів Java Swing.

Як створити виконуваний файл JAR для моєї програми?


Що ти питаєш? Як виконати jar або як створити виконуваний файл з jar (одна команда, наприклад run.cmd)?
AlikElzin-kilaka

Відповіді:


84

Файл 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.


34
Тільки мої два центи: Вам не обов’язково створювати файл маніфесту. Для утиліти jar , якщо ви вказали прапор e замість m , тоді вам просто потрібно вказати точку входу (тобто основний клас) програми, а не файл маніфесту. Приклад:jar cvfe jarexample.jar com.example.jar.JarExample *.class
Powerslave

1
Якщо ви створюєте файл MANIFEST.MF, не забудьте закінчити останній рядок розривом рядка. У Windows просто додайте порожній рядок в кінці. В іншому випадку останній атрибут не потрапить у файл jar. У цьому особливому випадку атрибут Main-Class буде відсутній.
Девід

36

В Eclipse ви можете зробити це просто наступним чином:

Клацніть правою кнопкою миші на своєму проекті Java та виберіть Експорт .

Виберіть Java -> Запущений файл JAR -> Далі.

Виберіть конфігурацію запуску та виберіть файл проекту як основний клас

Виберіть папку "Місце призначення", де ви хочете її зберегти, і натисніть кнопку Готово.


Конфігурація запуску: <MainClasssName> - <ProjectName>
corlaez

17

Ось це в один рядок:

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.
Річка

4

Якщо ви використовуєте 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 знаходитиметься в цільовому каталозі.


Варіант, ніж вище.
Vishwa Ratna

0

Пізно відповідати на це питання. Але якщо хтось шукає цю відповідь зараз, я змусив її працювати без помилок.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.