web-dev-qa-db-ja.com

Eclipseによってエクスポートされたjarを実行する際の「メインクラスが見つかりませんでした」エラー

Javaプロジェクトがあり、Eclipse内から実行すると完全に動作します。"JAR file"または"Runnable JAR file"にエクスポートしようとすると、.jarファイルは作成しましたが、プログラムを実行しようとしてダブルクリックすると、エラーが表示されます

"Could not find the main class: package.MainClassName. Program will exit."

先ほど述べたように、両方のJARオプションにエクスポートしてみました。mainメソッドが含まれる正しいクラスを指定し、.jarファイル内の実際のファイルを調べると、すべてが順番どおりになっているようです-マニフェスト次のようになります:

Manifest-Version: 1.0
Main-Class: package.MainClassName
(blank line)

META-INFフォルダーにあります。 mainメソッドを含むクラスを含むすべての.classファイルを含むパッケージ名のフォルダーがあります。使用しているいくつかの画像ファイルとテキストファイルもjarファイルに表示されます。

実際のプログラムはそれほど複雑ではありません。Swingを使用した単純な「スネーク」ゲームです(さらに、Eclipse内から実行するとすべてのコードが機能します)。

このエラーの原因は何ですか?どのように修正できますか?他に提供する必要のある情報があれば教えてください。

25
scaevity

わかりましたので、ようやく機能するようになりました。 7ではなくJRE 6を使用すると、すべてがうまく機能します。理由はわかりませんが、機能します。

6
scaevity

そのようなアプリケーションを開始できることを確認します。

Java -cp myjarfile.jar snake.Controller

ダブルクリックするとを読むだけです-これは、オペレーティングシステムの設定の問題のように聞こえます。 Windows Explorerウィンドウでファイルをダブルクリックしていますか?コマンドを使用してコンソール/端末から実行してみてください

Java -jar myjarfile.jar

さらに読む


マニフェストは新しい行で終了する必要があります。ファイルを確認してください。新しい行がないと問題が発生します。

23
Andreas_D

コマンドラインで次のように実行します。

Java -jar /path/to/your/jar/jarFile.jar
6
MobileMon

Eclipseを使用する代わりに、手動で.jarファイルを作成しようとしましたか。次の手順を試してください。うまくいけばうまくいくと思います。

ディレクトリ構造が次のように見えることを考慮してください:

 TicTacToe(Your Project Name I mean)
 |              |                  |
src            bin             manifest.txt
             |    |
           icons  tictactoe

ここで、メインクラスがパッケージBeginGame内のtictactoeであるとします。そのため、manifest.txtファイル内に次のように記述します。

Main-Class: tictactoe.BeginGame

コロン:とパッケージ名(tictactoe)の間のスペースを覚えておいてください。BeginGameの直後にEnterキーを押してファイルを保存してください。

コマンドプロンプトでbinフォルダの場所に移動し、次のように私の側を説明しています:

C:\Mine\Eclipse\TicTacToe\bin>jar -cfm ..\tictactoe.jar ..\manifest.txt tictactoe icons
  • ここでは、最初の引数、つまり..\tictactoe.jarを使用して、tictactoe.jarを1レベル上、つまりTicTacToe Folder内に作成することを示しています。
  • 2番目の引数..\manifest.txtは、manifest.txtファイルが1レベル上、つまりTicTacToe Folder内にあることを意味します。
  • 3番目と4番目の引数tictactoeおよびiconsは、これらのフォルダーを.jarファイルに追加することを意味します。これらは、binフォルダー内に配置され、そのまま使用されるためです。 Enterを押します。

次に、Project Folder(私の場合はTicTacToeフォルダー)内に作成された.jarファイルを実行してみます。

うまくいけば、これが機能するでしょう。

5
nIcE cOw

先日同じ問題に遭遇しましたが、それを機能させるのに何日もかかりました。エラーメッセージは「メインクラスが見つかりませんでした」でしたが、Eclipseからエクスポートされた実行可能jarを他のWindowsマシンで問題なく実行できます。

解決策は、同じバージョンのJREのx64バージョンとx86バージョンの両方をインストールすることでした。パス環境変数はx64バージョンを指していました。理由はわかりませんが、うまくいきました。

1
feng63600

プロジェクト/メインクラスの名前を変更しましたか(リファクタリングなど)?はいの場合、Launch Configurationが正しく設定されていない可能性があります(例:oldメインクラスまたは設定を参照)。プロジェクト名は「実行可能なjarをエクスポート」ダイアログに表示されますが、詳細に調べると、一致しないメインクラス名が見つかる場合があります。

プロジェクトの「プロパティ->実行/デバッグ設定」に移動し、起動構成(実行可能なjarのエクスポートに使用されるものと同じ)がプロジェクトの正しい名前に設定されていることを確認します[〜#〜] and [〜# 〜]メインクラスはname.space.of.your.project/YouMainClassに設定されます。

1
count0

プロジェクトを右クリックします。プロパティに移動します。 [実行/デバッグ設定]をクリックします。次に、実行しようとしているメインクラスの実行構成を削除します。さて、もう一度runを押すと、問題なく動作します。

0
user3374766

この問題を抱えているNetBeansユーザーの場合、次のように簡単です。

1.プロジェクトに移動し、右クリックしてプロパティを選択します

2. [実行]をクリックし、ブラウザをクリックします。

3.最初に表示するフレームを選択します。

0
kegs Production