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内から実行するとすべてのコードが機能します)。
このエラーの原因は何ですか?どのように修正できますか?他に提供する必要のある情報があれば教えてください。
わかりましたので、ようやく機能するようになりました。 7ではなくJRE 6を使用すると、すべてがうまく機能します。理由はわかりませんが、機能します。
そのようなアプリケーションを開始できることを確認します。
Java -cp myjarfile.jar snake.Controller
ダブルクリックするとを読むだけです-これは、オペレーティングシステムの設定の問題のように聞こえます。 Windows Explorerウィンドウでファイルをダブルクリックしていますか?コマンドを使用してコンソール/端末から実行してみてください
Java -jar myjarfile.jar
さらに読む
マニフェストは新しい行で終了する必要があります。ファイルを確認してください。新しい行がないと問題が発生します。
コマンドラインで次のように実行します。
Java -jar /path/to/your/jar/jarFile.jar
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
内に作成することを示しています。..\manifest.txt
は、manifest.txtファイルが1レベル上、つまりTicTacToe Folder
内にあることを意味します。tictactoe
およびicons
は、これらのフォルダーを.jar
ファイルに追加することを意味します。これらは、bin
フォルダー内に配置され、そのまま使用されるためです。 Enterを押します。次に、Project Folder
(私の場合はTicTacToeフォルダー)内に作成された.jarファイルを実行してみます。
うまくいけば、これが機能するでしょう。
先日同じ問題に遭遇しましたが、それを機能させるのに何日もかかりました。エラーメッセージは「メインクラスが見つかりませんでした」でしたが、Eclipseからエクスポートされた実行可能jarを他のWindowsマシンで問題なく実行できます。
解決策は、同じバージョンのJREのx64バージョンとx86バージョンの両方をインストールすることでした。パス環境変数はx64バージョンを指していました。理由はわかりませんが、うまくいきました。
プロジェクト/メインクラスの名前を変更しましたか(リファクタリングなど)?はいの場合、Launch Configurationが正しく設定されていない可能性があります(例:oldメインクラスまたは設定を参照)。プロジェクト名は「実行可能なjarをエクスポート」ダイアログに表示されますが、詳細に調べると、一致しないメインクラス名が見つかる場合があります。
プロジェクトの「プロパティ->実行/デバッグ設定」に移動し、起動構成(実行可能なjarのエクスポートに使用されるものと同じ)がプロジェクトの正しい名前に設定されていることを確認します[〜#〜] and [〜# 〜]メインクラスはname.space.of.your.project/YouMainClass
に設定されます。
プロジェクトを右クリックします。プロパティに移動します。 [実行/デバッグ設定]をクリックします。次に、実行しようとしているメインクラスの実行構成を削除します。さて、もう一度runを押すと、問題なく動作します。
この問題を抱えているNetBeansユーザーの場合、次のように簡単です。
1.プロジェクトに移動し、右クリックしてプロパティを選択します
2. [実行]をクリックし、ブラウザをクリックします。
3.最初に表示するフレームを選択します。