1. ホーム
  2. java

[解決済み] 「Java+Scala+Slick2D使用時に「指定された起動構成からmainメソッドが見つかりませんでした。

2022-02-02 04:35:59

質問事項

Java+Scala+Slick2Dを使ったプロジェクトがあります。

プロジェクト自体は、eclipse内から起動するとうまく動きます。しかし、jarファイルを作ろうとすると、どうしてもうまくいきません。以下は、Runnable jarとしてエクスポートしようとしたときに表示されるエラーです。

そして、Jarファイルだけにエクスポートしようとすると、Mainクラスを見つけることができません。

もちろん、game.TicTacGameにはメインクラスが存在します。しかし、それを認識することを拒否しています。単純なHello Worldプロジェクトで実行ファイルを作ってみましたが、問題なく動作しました。メイン・クラスさえも検出される。なぜこの場合、Eclipseはmainクラスを検出しないのでしょうか?

PS: 作成された.jarファイルを解凍し、manifest.mfファイルを編集してMain-Class: game.TicTacGameを追加し、新しい2行を入力してjarを再作成することも試しましたが、これはうまくいきませんでした。すると、corrupted jar file errorと表示されます。

途方に暮れていますので、何かご助言いただければ幸いです。Windows 7 x64、Eclipse Juno、Java 1.7、Scala 2.10を使用しています。

編集:MainクラスはJavaです

解決方法は?

よし、うまくいったぞ。どうやら、eclipseを再起動すればいいようだ。すると、魔法のようにMainクラスが検出されるようになった。

しかし、このjarはSlick2dやLWJGLなどのライブラリに対してnoClassDefFoundエラーを出すようになったのです。そこで JarSplice は私の救いに来てくれたのです。私は以前と同じように、すべてのライブラリとリソースを含むプロジェクトをエクスポートしました。

そして、JarSpliceを起動し、以下のようにすべてを追加しました。

  1. jarの追加"で、eclipseで作成したproject.jarを追加し、lwjgl.jar, slick.jar と scala-library.jar を追加します。lwjgl と slick はプロジェクトの lib フォルダにあるはずで、それらをインポートしました。以下も同様に追加してください。
  2. 次に、"Add Natives"をしようとすると、"Duplicate library"のエラーが出続ける。そこで、それらをすべて削除し、空の状態にしておきました。
  3. 次に "Main Class" に、メインクラスへのパス、つまり game.TicTacGame を入力しました。
  4. 最後に、"Create Fat Jar"を実行します。そして、それは完全に動作します :)