0

誰かがこれを手伝ってくれますか?私は、まさに私が必要としているものに対してこれに答える何かを見つけることができませんでした。私が見つけたすべての答えは、マニフェストファイルにライブラリを追加することと関係があります。

状況は次のとおりです。

NetBeans6.9を使用してゲームを作成しました。ゲームはJavaです。約80のクラスがあります。すべてのクラスはデフォルトパッケージに含まれています。ゲームは正しく実行されます。私はこのプロジェクトに約18か月間取り組んでおり、ゲームを開発している間は常に実行可能コードを維持しています。

私がしたこと:

自分が書いた静的クラスから、作業中の別のクラスに何かをインポートする必要がありました。そのためには、すべてをデフォルトのパッケージから移動する必要がありました。NetBeansを使用して、すべてをカスタムパッケージにリファクタリングしました。

どうしたの:

「クリーンアンドビルド」を実行すると、プロジェクトは正常にビルドされます。「メインプロジェクトの実行」を実行すると、次のエラーが発生します。

java.lang.NoClassDefFoundError: WarMachine
Caused by: java.lang.ClassNotFoundException: WarMachine
...stack trace
Could not find the main class: WarMachine. Program will exit.

.jarファイルを確認したところ、メインクラス(WarMachine.classと呼ばれる)を含め、コンパイルされたすべての.classファイルがそこにあることがわかりました。すべての.classファイルは、Machineというディレクトリにあります(これは、NetBeansにすべてをリファクタリングさせたパッケージ名です)。

私がインターネットで見つけたものから、問題は私のmanifest.mfファイルがWarMachine.classファイルの正しい場所を指していないということです。

マニフェストファイルは何を言う必要がありますか?他のライブラリなどは使用していません。私には78のクラスがあり、そのすべてが「マシン」パッケージに含まれています。誰か助けてもらえますか?

御時間ありがとうございます!

4

1 に答える 1

1

メインクラスファイルがどこにあるかをNetbeansに伝える必要があります。プロジェクトを右クリックし、[プロパティ]を選択して、左側の[実行]ツリー要素に移動します。

これで、右側に「メインクラス」テキストボックスが表示されます。「参照」をクリックして、メインクラスを選択します。その後、Netbeansはマニフェストファイルを修正する必要があります。

プロパティのスクリーンショットを実行する

興味がある場合は、distフォルダーの.jarファイル内のマニフェストファイルに次のような行を含める必要があります。

Main-Class: Machine.WarMachine

余談ですが、パッケージ名には小文字を使用するのが標準的な方法と考えられています。パッケージを呼び出す必要がありますmachine

于 2010-12-09T18:50:57.487 に答える