2012-02-10 50 views
0

当我尝试运行java程序时出现以下错误。在线程“main”中获取错误异常java.lang.NoClassDefFoundError:

"Exception in thread "main" java.lang.NoClassDefFoundError:"

我有,我有一个文件Goo.java

package book; 
import cert.*; 

class Goo 
{ 
    public static void main(String[] args) 
    { 
     Sludge s = new Sludge(); 
     s.testIt(); 
    } 
} 

我有一个证书文件夹中,我有一个文件Sludge.java一本书夹:

package cert; 
public class Sludge 
{ 
    public void testIt() 
    { 
     System.out.println("Sludge"); 
    } 
} 

我有D:\studies两个文件夹(书和证书),我的课程路径包括:

.;C:\Program Files\Java\jre6\lib;C:\Program Files\Java\jre7\lib\ext\QTJava.zip;C:\Program Files\Java\jdk1.7.0\lib;D:\studies\book;D:\studies\cert;D:\studies

当我尝试运行文件Goo.java时,我得到了NoClassDefFoundError

我在做什么错在这里?

感谢, Priyesh T.

+0

你能告诉我们你用来执行java的命令吗? – jbranchaud 2012-02-10 23:14:12

+0

我正在使用以下命令执行java:java Goo – 2012-02-10 23:18:22

+0

这些文件夹应该包含'Goo.class'和'Sludge.class'。请确认这两个java文件已经被编译。 – 2012-02-10 23:22:18

回答

2

Goo类是在包book,所以你应该运行:从包含书目录的目录

java book.Goo 

运行它。因此,例如,您可能会遇到:

> javac book\Goo.java cert\Sludge.java 
> java book.Goo 

book.GooGoo类的完全限定名称。

+0

它工作时,我使用'代码'java book.Goo – 2012-02-10 23:27:33

+0

你能解释为什么它不工作时,我只用Java Goo?我很困惑,即使在我的类路径中声明了类文件的路径后,为什么我得到这个错误? – 2012-02-10 23:30:35

+0

@PriyeshTungare:因为'Goo'不是完全合格的类名,而且你必须给出完全合格的类名......你不要在你的类路径中放置类文件本身的路径;你把一个路径放到你的类路径的类文件夹结构的根目录(在这种情况下是'book'的父类)。 – 2012-02-10 23:35:39

相关问题