0

現在、Slick と Maven を使用して単純な Java ゲームを構築しようとしています。

私のセットアップは基本的に機能します。しかし、メイン クラスを Slick "BasicGame" に拡張すると、jar を実行できなくなり、次のエラー メッセージが表示されます。

D:\workspace\GameTest\target>java -jar GameTest-1.0-SNAPSHOT.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/newdawn/slick/BasicGame
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$000(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.newdawn.slick.BasicGame
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 12 more
Could not find the main class: gameTest.MyGame. Program will exit.

これを行う前は、すべてが正常に実行されていました。Pom.xml はhereからコピーされます。

MyGame クラスは次のようになります: ... インポート ...

public class MyGame extends BasicGame {

   ...
   empty implementations of BasicGame Methods
   ...

   public static void main(String[] args){
      System.out.println("Hello World");       
   }
}

このエラーが発生する理由を知っている人はいますか?

4

1 に答える 1

1

このエラーが発生する理由を知っている人はいますか?

実行可能な jar の使用に切り替えたとき、依存ライブラリ (slick.jar) がクラス パスに存在しない状況が発生しました。MyGame は jar ファイルにあるため、すべて問題なく開始されます。しかし、MyGame は、jar ファイルにない BasicGame を拡張します。それは slick.jar にあり、Java コマンドは slick.jar を参照しません。

どういうわけか、すべての依存関係をクラス パスに戻す必要があります。詳細については、関連する質問を確認してください。カスタム マニフェスト ファイルを使用して、プロジェクト クラスとプロジェクトの依存関係を jar として含む "uber" jar を作成することは可能ですか?

pom.xml ファイルを確認しました。lwjgl と vecmath もクラスパスに統合する必要があります。

于 2012-10-16T19:47:08.990 に答える