6

さて、私は奇妙な問題を抱えています。プログラムの1つを.jarファイルとして実行したかったのですが、ダブルクリックして開くと、「メインクラスが見つかりませんでした。プログラムがシャットダウンしています」などのエラーメッセージが表示されます。私は私がすべてを正しくしたとかなり確信しています、瓶はafaikで動作するはずです。他のプログラムも試してみましたが、どれも同じです。(BlueJを介して.jarを作成しています).batを介して実行しても問題はありません。そして、ここで最も奇妙なことが起こります。.jarはしばらく前に機能していました(私が推測する1、2か月)、そして私は何か違うことをしたことを覚えていません。同じBlueJバージョンです。さて、Javaが更新され、何かが台無しになったのかもしれません...グーグルで検索しましたが、解決策が見つかりませんでした。(一部の人々は同様の問題を抱えているようであり、彼らを実行できないのは彼らだけのようです。瓶の; 彼らはそれらをアップロードし、他の人々は.jarが正常に実行されていると言います。)何が問題である可能性がありますか?どうすれば解決できますか?

ここで助けていただければ幸いです。ありがとうございました :)

ApertureT3CH

編集:大丈夫、あなたは私をここで確信させていない。インマはマニフェストをもう一度チェックします、この不幸な時間(午前1時34分):P

EDIT2:これは私のMANIFEST.MFマニフェストです-バージョン:1.0クラスパス:メインクラス:LocalChatClientGUI[空の行][空の行]

メインクラスは正しいです。

EDIT3:hgreyに感謝します:jarには何も問題はありません。batファイルから実行できますが、実際にはjarファイルをダブルクリックするのと同じですよね。それでも、クリックするとエラーが発生し、バット全体で正常に機能します。

EDIT4:私はついに問題を解決しました。JREを再インストールしましたが、バージョンの違いはわかりませんが、動作するようになりました。

みんなありがとう!

4

6 に答える 6

13

javaがjarを実行すると、jarのMETA-INFディレクトリ内のmanifest.mfファイルが調べられ、そこでMainClass属性が読み取られます。指定されていない場合は、説明したメッセージが表示されます。したがって、正しいmanifest.mfをjarに含めるようにしてください。マニフェスト.mfの生成は、AntやMavenなどの一般的なJavaビルドツールでサポートされています。

于 2012-04-13T23:20:10.683 に答える
2

プログラムは外部jarファイルを使用していますか?その場合は、マニフェストファイルとメインクラス内にクラスパス属性を設定する必要があります。

于 2012-04-14T01:16:24.120 に答える
1

通常、jarファイル内のどのクラスにmainメソッドがあるかを指定する必要があります。動作するbatファイルを確認すると、実行するために不足しているものが見つかる可能性があります。

于 2012-04-13T23:18:22.760 に答える
0

マニフェストを確認することをお勧めします。

http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

于 2012-04-13T23:22:37.860 に答える
0

マニフェストテキストファイルは、改行またはキャリッジリターンで終了する必要があります。最後の行は、改行またはキャリッジリターンで終了しない場合、適切に解析されません。

于 2012-09-03T15:29:49.573 に答える
0

また、マニフェストにクラスパス属性を追加し、値にドットを付けます。これにより、vmはクラスの現在のディレクトリを確認するようになります。

于 2013-07-30T21:10:27.477 に答える