web-dev-qa-db-ja.com

NetBeansで実行可能なjarを生成する

NetBeans 6.5を使用していますが、何らかの理由で「そのまま」実行可能なjarが生成されません。

プロジェクトをメインプロジェクトに設定し、プロジェクトプロパティの[実行]メニューでメインクラスを定義しました。F6キーを押して実行すると、プロジェクトは問題なく動作します。

マニフェストファイルを確認したところ、実際にはメインクラスが定義されておらず、ライブラリの依存関係も省略されていました。



何か不足していますか?実行可能なjarファイルを生成する方法(マニフェストファイルを手動で変更する以外)はありますか?

編集:はい、私はきれいにして再構築しようとしましたが、それはまだ同じマニフェスト.mfで、distフォルダにjarを生成しました

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 10.0-b23 (Sun Microsystems Inc.)
19
Dani

Maven Java Application project。 maven Assembly plugin を含むようにpom.xmlファイルを変更して、1つのTweak to myrhoの回答(事前定義された記述子「jar-with-dependencies」を参照する必要があります):

<plugin>
    <artifactId>maven-Assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>your.app.MainClass</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <id>make-Assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

別の方法は、Java Mavenを使用しないNetBeansのアプリケーションプロジェクトをビルドすることです。[ファイル]-> [プロジェクトプロパティ]-> [ビルド]-> [パッケージ]を選択し、[依存ライブラリをコピー]チェックボックスをオンにします。

7
rarchibald

Mavenアセンブリプラグインを使用していて、依存関係のある実行可能jarをビルドする場合は、この部分をpom.xmlのmaven-Assembly-pluginセクションの設定に追加する必要があります。

<plugin>
  <artifactId>maven-Assembly-plugin</artifactId>
  <configuration>
    <!-- ... -->
    <archive>
      <manifest>
        <mainClass>your.app.SampleClass</mainClass>
      </manifest>
    </archive>
  </configuration>
</plugin>

出典: Maven Assembly Plugin Usage

6
myrho

これを試して:

  1. [プロジェクト]パネルでプロジェクトを右クリックし、[プロパティ]を選択します

  2. 新しいウィンドウで[実行]をクリックします。

  3. [メインクラス:]フィールドを編集します([参照]をクリックします)。

このようにして、アプリケーションへのエントリポイントであるメインクラスを選択すると、マニフェストが正しく作成されます。

5
kv.

非常にシンプルです。jarファイルと.jadファイルはdistフォルダにあります

私も答えを探していて、これを http://forums.netbeans.org/ptopic3465.html から取得しました

解決しました:)

4
SMUsamaShah

プロジェクトをクリーンアップして再ビルドしましたか?あなたはそれを正しくやっているように聞こえます。念のため、いくつかの参照を示します。

http://www.velocityreviews.com/forums/t141385-how-to-create-executable-jar-in-netbeans-ide.htmlhttp://dr.berkeley。 edu/REM/wiki/index.php/Making_a_Java_executable_jar_in_Netbeans

2
John Ellinwood

Java Applicationの代わりに既存のソースを使用するJavaプロジェクトを作成した可能性がありますか?

私は同様の問題があり、新しいJavaアプリケーションを作成してから手動でsrcファイルをコピーすると問題が解決しました-すべてが「そのまま」機能しました。

1
Xaerxess

プロジェクトの種類によってビルドプロセスが異なるという経験がありました。

「Java Class Library」プロジェクトを作成したと思います。

つまり、「Javaアプリケーション」プロジェクトを作成し、すべてのクラスをそれにマージするだけです。

次に、Netbeansはオーバーライドではなく、拡張します"manifest.mf"をJARに挿入します。

もちろん、それは愚かなNetbeansのバグです。もちろん、後でメインクラスを追加することもできます。

編集:私の他の答えを見てください。簡単です。

プロジェクトをクリーンアップしてビルドすると、「dist」ディレクトリにjarが作成されます。

プロジェクトディレクトリの最上位にmanifest.mfを作成する必要があります。

1
marktucks

同じ問題が発生した後、実際にこのページに出くわしました。manifest.mfファイルを編集しましたが、jar MANIFEST.MFファイルに変更が表示されませんでした。私が抱えていた問題を見つけ、関連がある場合に備えて情報を伝えたいと思いました。

私が間違っていたのは、自分が取り組んでいるプロジェクトがメインプロジェクトとして設定されていなかったため、正しいマニフェストを編集しているときに間違ったプロジェクトをコンパイルしていました。

では、ストーリーの短い部分で、編集しているmanifest.mfファイルに対して正しいプロジェクトが選択されているかどうかを確認しましたか?

1
Jeff

NetBeansで手動でパッケージを作成するにはIDE 8.0.2 ...

  1. プロジェクトナビゲーターで、<project>を展開し、Project Files/pom.xmlを右クリックします。
  2. [Run Maven/Goals]をクリックします
  3. [目標]フィールドに「パッケージ」と入力します
  4. OKをクリックします

出力ウィンドウが表示されます(Macの場合)...

Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar
0
Ken Lin

ファイルビューに移動します。ルートディレクトリにmanifest.mfを作成します。

/project_folder
    build.xml
    manifest.mf(edit here)
    /dist
    /src
    /test
    /build
0
l_39217_l

興味深い情報は次のとおりです。

http://wiki.netbeans.org/FaqNoMainClass

0

より良いソリューション:

Nbproject/project.propertiesを編集してエントリを追加

manifest.file=manifest.mf

manifest.mfはプロジェクトのルートにあり、以下のみを含む必要があります。

Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build

動作します。テスト済み。

Neatbeanでは、次の手順を実行できます。1.右クリックプロジェクト名項目を選択設定を設定選択してくださいカスタマイズ
2。 実行を選択し、メインクラスに注意してください。
3。 参照を選択し、実行する場合はクラスを設定します。 [OK]をクリックした後。
4。終わり。

0
vuongluis

7.3では、プロパティ/ビルド/パッケージ/依存ライブラリのコピーを有効にするだけで、メインクラス(選択したターゲットに依存)がビルド時にマニフェストに追加されます。

0
Samuel Ventura

別のアプローチは、完全にNetBeansでユニットテストなどを開発、実行することですが、その後、mavenまたはantスクリプトを使用して「実際の」ビルドを行います。これらの種類のビルドツールを使用すると、ビルド方法をより詳細に制御でき、ビルドを自動化することもできます。

Mavenの場合、Maven jarプラグインを使用してマニフェストにエントリを簡単に追加できます。

http://maven.Apache.org/plugins/maven-jar-plugin/

0
James Kingsbery

確かに奇妙なことですが、クラスパスを含めて、すぐに使えるはずです。

以前のバージョンからアップグレードしましたか?アップグレードすると、NBはプロジェクトファイルをアップグレードしますが、この移行がうまく行われず、この種のシナリオがポップアップすることがあります。プロジェクトを閉じ、nbproject dirの名前をnbproject_oldに変更して、新しいプロジェクトを実行してください- > Java既存のソースを使用するプロジェクト。メインクラスを再度設定し、依存関係を追加して、再試行してください。

0
Rogier