2014-02-17 89 views
1

当试图从终端运行我的程序时,我得到Exception in thread "main" java.lang.NoClassDefFoundError: start (wrong name: Start)。我在我的程序中有两个类,名为Load.javaStart.java,当文件使用javac *.java编译正常时,但是当我尝试并使用java Start启动Start.java时,出现此错误。NoClassDefFoundError当从终端启动时(Java)

Exception in thread "main" java.lang.NoClassDefFoundError: start (wrong name: Start) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 

我发现了其他人得到类似错误的例子,但似乎找不到解决方案或我为什么发生。所以这是我的问题,为什么我得到这个错误?我能做些什么来防止它再次发生?

谢谢,Ciaran。

+0

好像你正在运行的Java'的start'代替'java的Start'。 –

+0

两者都给出了相同的结果。 – user202051

+0

你的课程有哪些包? –

回答

3

您必须使用完全限定的类名称。如果您的课程“开始”处于包a中,则必须使用java a.Start进行启动。您也可以使用 - cp选项来设置类路径。

+0

设置类路径,现在工作正常。谢谢。 – user202051

0

您必须从主路径打开CMD并运行java命令并提供完整软件包详细信息。例如:如果您的Start.class位于C:\ EampleProj \ com \ test \ Start.class中,请执行以下操作:那么你应该尝试

C:\ EampleProj>的Java com.test.Start