web-dev-qa-db-ja.com

IntelliJからjarを正しく作成する方法

私は単一のモジュールといくつかの依存関係を含むプロジェクトを持っています。コンパイルされたモジュールを含むjarを別のディレクトリに作成したいのですが。さらに、私のモジュールの横に依存関係があることを望みます。

どのようにIntelliJの "build jar"プロセスをひねっても、私のモジュールの出力は(META-INFファイルを除いて)空に見えます。

423
ripper234

IntelliJ 10でjarを作成する方法は次のとおりです。 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/

「ファイル」 - >「プロジェクト構造」 - >「プロジェクト設定」 - >「成果物」 - >緑色のプラス記号をクリック - >「ジャー」 - >「依存関係を持つモジュールから」.

上記は "スケルトン"をjarが保存される場所に設定します。実際にビルドして保存するには、次のようにします。

目的のJarに抽出する

OK

ビルド|アーティファクトを構築

486
simao

これは2017年にまだ問題です、それがそこに誰かを助けるのを願っています! IntelliJ 2017.2の下で作業jarファイルを作成する2つの可能性を見つけました

1. IntelliJからアーティファクトを作成します。

  • プロジェクト構造に移動します。

File menu

  • 新しい案件を作成します。

Create a new artifact

  • メインクラスを選択し、マニフェストフォルダを必ず変更してください。

enter image description here

マニフェストディレクトリを変更する必要があります。

<project folder>\src\main\Java 

「Java」を「resources」に置き換えます。

<project folder>\src\main\resources

これは次のようになるはずです。

correct way for new manifest

  • それからあなたはあなたがあなたのjarファイルに詰め込みたいもの、またはあなたのjarファイルの近くに依存関係を選択します

  • あなたのアーティファクトを構築するには、アーティファクトを構築して「再構築」を選択します。それはあなたのjarファイルとその依存関係で "out"フォルダを作成します。

enter image description here

2. maven-Assembly-pluginを使う

Pomファイルにビルドセクションを追加する

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-Assembly-plugin</artifactId>
                <configuration>
                    <finalName>ServiceCreate</finalName>
                    <appendAssemblyId>false</appendAssemblyId>
                    <archive>
                        <manifest>
                            <mainClass>com.svt.optimoo.App</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • 新しい実行/デバッグ構成を作成します。

Create a new run/debug configuration:

  • アプリケーションを選択してください:

Choose application

  • フォームに記入
  • 最後に実行されるようにビルド後に "Assembly:single" Mavenゴールを追加してください

enter image description here

Final setup

  • 保存してから実行してください

enter image description here

この手順では、 "target"フォルダの下にjarファイルが作成されます。

JAR file location

153
Zsolt Tolvaly

私は最近この問題を抱えており、以前の解決策やリンクに詳細が欠けている場合、これらのステップは従うのが簡単だと思います。

IntelliJ IDEAを使用して.jarを作成する方法14.1.5:

  1. ファイル>すべて保存をクリックします。
  2. Mainメソッドでドライバまたはクラスを実行します。
  3. ファイル>プロジェクト構造.
  4. タブ "案件"を選択します。
  5. ウィンドウ上部の緑色のプラスボタンをクリックしてください。
  6. 「追加」ドロップダウンメニューから「JAR」を選択します。 「依存関係のあるモジュールから」を選択します。
  7. メインクラスを選択してください。
  8. ラジオボタンで「ターゲットJARに抽出する」を選択しているはずです。 OKを押してください。
  9. "Build on make"にチェックを入れます
  10. 適用を押してOKを押します。
  11. メインメニューから、ビルドドロップダウンを選択します。
  12. 成果物構築オプションを選択します。
127
user5442490

私がそうであるように画像から利益を得るそれらのために:

ファイル - >プロジェクト構造

enter image description here

enter image description here

enter image description here

enter image description here

28
Crt

以下はMavenプロジェクトの2つの例です。

方法1:mavenとpom.xmlを使用してjarを構築する

  1. ファイル、新規、プロジェクト、Maven
  2. パッケージを作成し、そのパッケージ内にJavaプログラムを作成します enter image description here
  3. pom.xmlにmaven-jar-pluginを追加します。

        <plugin>
            <!-- Build an executable JAR -->
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>somePackage.sample</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    

画面キャプチャ:  enter image description here 4.検索アイコンをクリックしてmavenプロジェクトボックスを開き、mavenと入力します。 enter image description here

  1. クリーンをクリックしてからインストールをクリックしてください enter image description here

  2. あなたのjarファイルはターゲットフォルダの中に現れるでしょう enter image description here

  3. javaの-jarを使ってjarをテストする

enter image description here

方法2:pom.xmlを変更せずにmavenでjarを構築する

  1. ファイル、新規、プロジェクト、Maven
  2. パッケージを作成し、そのパッケージ内にJavaプログラムを作成します(上記と同じ)。
  3. 「ファイル」 - >「プロジェクト構造」 - >「プロジェクト設定」 - >「成果物」 - >緑色のプラス記号をクリック - >「Jar」 - >「依存関係のあるモジュールから」

とても重要!

MANIFEST.MFはリソースフォルダにあり、Main.Classは{package} - {class-name-that-c​​ontains-main-class}を参照する必要があります。

enter image description here enter image description here

  1. 次に、メニューの[ビルド]、[アーティファクト]、[ビルド]をクリックします。

enter image description here

  1. outフォルダーでjarを見つけます

enter image description here

  1. それを実行します :)

enter image description here

6
rrr

それはおそらく少し遅くなりますが、私はこの方法でそれを解決することができました - > winrarで開いてMETA-INFフォルダ内のECLIPSEF.RSAとECLIPSEF.SFを削除して、さらに "Main-class:main_class_name"( ".class"なしで) MANIFEST.MFに。最後の行の後に「Enter」を2回押したことを確認してください。そうしないと機能しません。

5
jbakirov

アイデア8.1.3

'output'ディレクトリ(project/out/production //)にコンパイル済みの出力があるのでJarは問題ありません。

私は、jarを作る前に 'make'を実行しなければならないと思います

依存関係のためには、単に "show library"をチェックして欲しいものを選んでください。

1
Vugluskr

Mavenでは、このプラグインを使うことができます。

 <build>
    <plugins>

        <plugin>
            <artifactId>maven-Assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>[path you class main]</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-Assembly</id>
                    <phase>package</phase> 
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
1
fede beron

私の問題はこれでした:私はIntellij IDEA(異なるバージョンを試しました)+ Gradleを使いました。上記の応答に示されているように、プロジェクトをコンパイルしてartifacf jarをビルドしたときに、 "no main manifest attrubute ..."というエラーが表示されました。

この解決策は私のために働きました(TipについてThilina Ashen Gamage(上記参照)に感謝します):

抜粋 - 外部ライブラリを使用し、 プロジェクト設定 - 成果物 - 追加(+) - Jar - 依存関係を持つモジュールから を使用してプロジェクトをビルドする場合、おそらくプログラムバグのためMANIFEST_MFファイルのMETA-INFフォルダーjarファイルに含めないでください。それを避けるために _ empty _ jarファイルを作成してください。

プロジェクト設定 - 案件 - 追加(+) - jar - EMPTY JAR 。 META-INFフォルダは resources フォルダに追加されます。それからあなたのメインクラスを選択してください。あなたは次のjar構造を見るでしょう: note the presence of a folder META-INF META-INFフォルダの存在に注意してください。その後、プロジェクトをビルドして成果物をビルドできます。このソリューションは、javaFXアプリケーションにも機能しました。

0
Orkhan Hasanli

これが IntelliJ IDEA 2018.3 Help の公式な回答です。私は試してみましたそれは働きました。

モジュールからJARファイルを作成する。

  1. メインメニューで、[ビルド] | [ビルド]を選択します。アーティファクトを構築します。

  2. ドロップダウンリストから、JARタイプの目的のアーティファクトを選択します。 リストには、現在のプロジェクトに対して構成されているすべての成果物が表示されます。設定したすべてのアーティファクトを構築するには、[Build all artifacts]オプションを選択します。

0
Sabri Meviş

Kotlinを使ってjarファイルを作成しようとしている場合は、src/main/Javaフォルダを作成し、このフォルダをMETA-INFフォルダの場所として使用する必要があります。

0
Chris

私が使用するとき これらの解決策 /このエラー

Java -jar xxxxx.jar

xxxxx.jarには、メインのマニフェスト属性はありません

そして解は

マニフェストディレクトリを変更する必要があります。

<project folder>\src\main\Java 

javaをリソースに変える

<project folder>\src\main\resources
0
Saeed

IntelliJ IDEAプロジェクトをMavenプロジェクトから再インポートするとすぐに、すべての変更が失われるため、他の回答の中には役に立たないものがあります。

Jarの構築は、プロジェクト設定ではなく、実行/デバッグ構成によって引き起こされる必要があります。

Jetbrainsは、あなたがここでこれをどのように達成することができるかについての良い説明を持っています:

https://www.jetbrains.com/help/idea/maven.html

「Mavenの目標に対するトリガーの設定」というセクションまでスクロールします。

(彼らの説明の唯一の欠点は、彼らのスクリーンショットが超素晴らしいdarculaテーマではなく、デフォルトの白黒配色になっていることです。

したがって、基本的には、「Maven Projects」パネルを開くと、関心のあるプロジェクト(この場合はjarを作成するプロジェクト)がその下に表示され、実行したいMaven目標が見つかります。 (通常は「パッケージ」の目的でjarファイルが作成されます)、コンテキストメニューを開き(Windowsマシンでは右クリック)、[実行前に実行/デバッグ...]オプションを選択できます。選択してください、そして、それはそこから手であなたを連れて行きます。本当に簡単です。

0
Mike Nakis

あなたはMaven( http://maven.Apache.org )を見たいと思うかもしれません。アプリケーションのメインビルドプロセスとして使用することも、[設定の編集]ダイアログで特定のタスクを実行するためだけに使用することもできます。 Maven内でモジュールのJARを作成するプロセスは、すべての依存関係も自明な自己実行可能JARに含めたい場合は、かなり簡単です。

これまでにMavenを使ったことがない場合は、 Mavenを使用したビルドの改善 を参照してください。

0
Gary Rowe

enter image description here 

上記の人が言うように、しかし私は一つの点に注意しなければなりません。チェックボックスをチェックする必要があります。

プロジェクトビルドに含める

0
Benchur Wong

もしあなたがspring/mvnプロジェクトに取り組んでいるなら、このコマンドを使うことができます。

mvn package -DskipTests

Jarファイルはtarget directoyに保存されます。

0
Hans Pour

プロジェクトでサードパーティのライブラリを使用している場合、またはMANIFEST.MFファイルの作成に問題がある場合は、を使用して生成されたJARファイルを実行するときに競合が発生する可能性があります。

File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > .....

上記の方法。

代わりに、空のJARを作成し、他のすべての要素を手動で出力ルートに追加することをお勧めします。この方法についての素晴らしいブログ記事はここで見つけることができます: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ /私はそこに述べられたステップを試みましたそして私のためにすべてがうまくいった!

マルチモジュールKotlin appからjarファイルを作成しようとしていましたが、悪名高い 'no main manifest attribute'エラーが発生していました。マニフェストディレクトリをsrc/main/resourcesに作成してもうまくいきませんでした。

代わりに、それを直接srcに作成するときに機能します:src/META-INF/MANIFEST.MF

enter image description here

0
Tobias Uhmann