実行可能なJARファイルを作成するにはどうすればよいですか?


82

2つの単純なJavaSwingファイルで構成されるプログラムがあります。

プログラムの実行可能JARファイルを作成するにはどうすればよいですか?


何を聞いているんですか?jarを実行する方法、またはjarから実行可能ファイルを作成する方法(run.cmdなどの1つのコマンド)?
AlikElzin-kilaka 2015年

回答:


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
            }
        });
    }
}

クラスをコンパイルします。jarを作成するには、マニフェストファイル(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
私の2セント:マニフェストファイルを作成する必要はありません。以下のためのjarあなたはフラグを指定した場合、ユーティリティ、電子の代わりにMを、そしてあなただけのアプリケーションではなく、マニフェストファイルの(メインクラスである)のエントリポイントを指定する必要があります。例:jar cvfe jarexample.jar com.example.jar.JarExample *.class
Powerslave 2015年

1
MANIFEST.MFファイルを作成する場合は、最後の行を改行で終了することを忘れないでください。Windowsでは、最後に空の行を追加するだけです。それ以外の場合、最後の属性はjarファイルに含まれません。この特別なケースでは、Main-Class属性が欠落します。
デビッド

36

ではEclipseの次のように、あなたは単にそれを行うことができます。

Javaプロジェクトを右クリックして、[エクスポート]を選択します。

Java」->「実行可能なJARファイル」 ->「次へ」を選択します

Launch Configurationを選択し、メインクラスとしてプロジェクトファイルを選択します

保存する保存先フォルダを選択し、[完了]をクリックします。


起動構成:<MainClasssName>-<ProjectName>
corlaez 2016

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
AntonStafeyev20年

されtestClass、あなたの1で定義された.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ファイルはターゲットディレクトリの下にあります。


上記よりも変形。
VishwaRatna20年

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すると、ディレクトリのProjectName-0.0.1-SNAPSHOT.jar下のようなものとしてjarファイルが生成されます target

次に、ターゲットに移動します ディレクトリcd target

最後にjava -jar jar-file-name.jar「はい」と入力すると、プログラムにエラーがない場合は正常に機能するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.