次の問題があります。 NetBeans Java 6.8にIDEプロジェクトがあります。コンパイルして、可能なすべてを含む.jarファイルを生成すると、META-INFは正しくありません。 main()メソッドを使用して、実行するクラスが含まれていません。
IDE内の[実行]ボタンをクリックすると、すべてが機能します。プロジェクトの設定も正しい方法で設定されます-私のプロジェクトのクラスを指します。
マニフェストファイルでMETA-INFフォルダーを追加しようとしましたが、管理しませんでした。
NetBeansでこれを手動で行う方法はありますか。マニフェストに欠落しているMainクラスを追加すると、すべてが機能することがわかりました。
(何らかのバグが発生したと思います...)
//編集:私が望んでいる結果は、NetBeansのビルドで作成されたjarをコマンドで実行可能にすることです。
Sun Documentation からの引用:
Main-Classがマニフェストファイルで設定されている場合、コマンドラインからアプリケーションを実行できます:Java -jar app.jar
提案された解決策と私を助けたものの要約を作成します!
このバグレポートを読んだ後: NetBeans 6.8がJava Library Project。 のjarを作成する方法のバグ。
プロジェクトルートにmanifest.mfファイルを作成します
Manifest.mfを編集します。私のものは次のように見えました。
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 16.3-b01 (Sun Microsystems Inc.)
Main-Class: com.example.MainClass
Class-Path: lib/lib1.jar lib/lib2.jar
ファイル/nbproject/project.propertiesを開きます
行を追加
manifest.file=manifest.mf
プロジェクトのクリーン+ビルド
これで.jarが正常にビルドされました。
ありがとうvkraemer
NetBeans 6.8がJava Library Project のjarを作成する方法のバグに遭遇しているようです。
この問題は、回避策があることを意味します。
NB 6.8および/またはNetBeans 6.9-dev ...で検証できませんでした...
NetBeans.org Webサイト/課題トラッカーに登録し、課題を更新して「投票」を追加することをお勧めします。
簡単です。
それでおしまい。お役に立てれば。
7.3では、Properties/Build/Package/Copy Dependent Librariesを有効にするだけで、選択したターゲットに応じてビルドするときにメインクラスがマニフェストに追加されます。
Yourしないで、プロジェクトを初めてビルドした後、プロジェクトファイルを調べてください。マニフェストファイルを探し、メモ帳で開くを選択します。
次の行を追加します。
_Main-Class: package.myMainClassName
_
package
はパッケージであり、myClassName
はmain(String[] args)
メソッドを持つクラスです。
Manifest.file = manifest.mfをproject.propertiesに追加し、プロジェクトディレクトリにmanifest.mfファイルを作成すると、NB 6.9で正常に動作し、NB = 6.8。
私は読んで読んで読んで、なぜクラスが見つからないエラーを取得していたのかを理解しました。manifest.mfに行にエラーがありました:
Main-Class: com.example.MainClass
プロジェクトのプロパティダイアログ(右クリックプロジェクトファイル)、次に実行およびメインクラスに移動してエラーを修正しました=そして、Netbeansがここに置くことにしたものは何でも修正しました。 Netbeanは、クラス名の代わりにプロジェクト名を挿入しました。理由はわかりません。おそらくムラティナに酔いしれて...
これはまだ7.2.1の問題です。ライブラリを作成します。ライブラリを作成すると、アプリケーションにした場合に何が起こるかわかりません。
しかし、これを修正する方法を見つけました。編集nbproject/project.properties
、次の行を次のようにfalseに変更します。
mkdist.disabled=false
この後、プロパティのメインクラスを変更すると、マニフェストに反映されます。
本当の問題は、NetbeansがどのようにプロジェクトをJARにするかです。他の人が使用できるようにプログラムを実際に公開する場合、マニフェストファイルの「Class-Path:」は不要です。 Netbeansに外部ライブラリが追加されている場合、それはパッケージとして機能します。 WINRARなどのプログラムを使用して、jar内のファイルを表示し、ライブラリをパッケージとしてjarファイルに直接追加することをお勧めします。
Jarファイルの内部は次のようになります。
MyProject.jar
Manifest.MF
Main-Class: mainClassFolder.Mainclass
mainClassFolder
Mainclass.class
packageFolder
IamUselessWithoutMain.class