2012-04-13 16 views
2

さて、私は奇妙な問題があります。自分のプログラムを.jarファイルとして実行したいのですが、ダブルクリックして開くと、「メインクラスが見つかりませんでした。プログラムがシャットダウンしています」というエラーメッセージが表示されます。私はすべてを正しくしたと確信しています、瓶はアフリカで働くべきです。私も他のプログラムを試しましたが、それはすべてのものと同じです。 (Bluejを使って.jarを作成しています).batを使って実行すると問題はありません。そして、ここでは、最も奇妙なものがすべて出てきます:.jarは以前(私が推測した1〜2ヶ月)働いていました。それは同じBlueJバージョンです。確かに、Javaが更新されて何かがうんざりしてしまったのです...私はグーグルではありますが、解決策を見つけることができませんでした。 (いくつかの人は同じような問題を抱えているように見えますが、その人は.jarを実行することができない人のようです;それらはアップロードされ、他の人は.jarの実行はうまくいっています)。どうすれば解決できますか?JARファイル:メインクラスが見つかりません

本当にありがとうございます。 ありがとうございました:)

ApertureT3CH

EDIT:大丈夫、みんな、あなたはここで私はわからない作っています。淫魔は、この不道徳な時間(1:34)で、再びマニフェストを確認してください:P

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

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

EDIT3:hgreyのおかげで、瓶に何も問題はありません。バットファイルから実行することができます。バットファイルは実際にはjarをダブルクリックするのと違うはずはありません。しかし、私はそれをクリックするとエラーが発生し、それはバットを介して正常に動作します。

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

ありがとうございました!

答えて

7

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

+0

このマニフェストを確認したところ、正しいメインクラスが指定されています。 – ApertureT3CH

+0

これを 'java -jar jarfilename'で実行しようとすると、マニフェストファイルの内容とともに1つが得られたらここに例外を投稿できますか? – hgrey

+0

どういうわけか...これはうまくいきません...なぜ私には分かりません。しかし、これは普通に瓶を実行する...私はアイデアの外です – ApertureT3CH

1

通常、jarファイルのどのクラスにmainメソッドがあるかを指定する必要があります。動作するバットファイルをチェックすると、実行するために欠けているものが表示されます。

1

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

+0

いいえ、外部の瓶はありません。 – ApertureT3CH

0

マニフェストテキストファイルは改行または改行で終了する必要があります。新しい行または改行で終了しない場合、最後の行は正しく解析されません。

+0

何ですか? jarファイルはテキストファイルではありません。あなたはマニフェストについて話していますか? –

0

また、マニフェストにclasspath属性を追加し、値のドットを入れます。これはv.mにクラスの現在のディレクトリを見るように指示します。

関連する問題