Java没有看到我的MAIN子句?

时间:2012-06-06 03:00:37

标签: java

好的,我没理解。我有以下代码(是的,我知道它什么都不做):

package com.prim.esaa.gui;


import com.jme3.app.SimpleApplication;

public class Sim3DAnimator extends SimpleApplication {


    public static void main( String[] args ) {

    }


    @Override
    public void simpleInitApp() {

    }




}

当我尝试运行它时出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/prim/esaa/gui/Sim3DAnimator
Caused by: java.lang.ClassNotFoundException: com.prim.esaa.gui.Sim3DAnimator
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: com.prim.esaa.gui.Sim3DAnimator. Program will exit.

现在,如果我读得正确,那就说没有主要条款,但有一个主要条款。我在这里错过了什么?

4 个答案:

答案 0 :(得分:1)

要启动Sim3DAnimator,您必须指定包名称。从com/prim/esaa/gui的父级发出以下命令。

> java com.prim.esaa.gui.Sim3DAnimator

PS:确保课程Sim3DAnimator位于com/prim/esaa/gui文件夹。

答案 1 :(得分:1)

看起来您正在尝试错误地运行此类,因此找不到类..

你试过了吗?

将Sim3DAnimator.class放入目录路径,例如:C:\ EXAMPLE \ com \ prim \ esaa \ gui

然后运行(从根目录): C:\例> java com.prim.esaa.gui.Sim3DAnimator

答案 2 :(得分:0)

  

现在,如果我读得正确,那就说没有主要条款,但有一个主要条款。

实际的含义是,它无法找到其完全限定名称为“com.prim.esaa.gui.Sim3DAnimator”的。事实上,它以不同的方式说了三次......

如果可以找到该类,它会将类“main”方法识别为入口点,因为您的main方法具有正确的特征。

那为什么不能找到这门课?好吧,你很可能没有正确的类路径。有关Java类路径如何工作以及如何设置它的详细信息,请参阅此Java手册页 - http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html

另一种可能性(基于你的评论)是你没有编译java代码。

答案 3 :(得分:0)

不是最好的解决方案。但我关闭并删除了我在包浏览器中的所有项目。然后,我从SVN重新检查了一份干净的副本。然后我创建了类,它运行正常。在我的构建设置中有些东西搞砸了,它阻止了所有东西的运行。

谢谢!