添加Slick后,jvm再也找不到Main类了

时间:2012-10-16 19:30:25

标签: java maven lwjgl

我目前正在尝试使用Slick和Maven构建一个简单的Java游戏。

我的设置基本上可以正常工作。但是当我将我的Main Class扩展为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");       
   }
}

有谁知道这个错误发生的原因?

1 个答案:

答案 0 :(得分:1)

  

有谁知道为什么会出现这种错误?

当您切换到使用可执行jar时,您创建了一种情况,其中依赖库 - slick.jar - 不再位于类路径中。一切都开始了,因为MyGame在你的jar文件中。但MyGame扩展了BasicGame,它不在你的jar文件中。它在slick.jar中,你的java命令不引用slick.jar。

不知何故,您必须将所有依赖项重新放回到类路径中。有关详细信息,请查看相关问题Is it possible to create an "uber" jar containing the project classes and the project dependencies as jars with a custom manifest file?

刚检查了你的pom.xml文件 - 你还必须将lwjgl和vecmath集成到你的类路径中。