好的,我没理解。我有以下代码(是的,我知道它什么都不做):
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.
现在,如果我读得正确,那就说没有主要条款,但有一个主要条款。我在这里错过了什么?
答案 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重新检查了一份干净的副本。然后我创建了类,它运行正常。在我的构建设置中有些东西搞砸了,它阻止了所有东西的运行。
谢谢!