为什么我会收到此错误?线程" main"中的例外情况java.lang.NoClassDefFoundError:"

时间:2014-09-30 23:26:29

标签: java static main void args

以下是完整的错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: DataEntry/java
Caused by: java.lang.ClassNotFoundException: DataEntry.java
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

这是我的代码:

    import java.awt.*;
    import java.awt.event.*;

    public class DataEntry {
      public static void main(String[] args) {
      Frame frm=new Frame("DataEntry frame");
      Label lbl = new Label("Please fill this blank:");
      frm.add(lbl);
      frm.setSize(350,200);
      frm.setVisible(true);
      frm.addWindowListener(new WindowAdapter(){
      public void windowClosing(WindowEvent e){
      System.exit(0);
      }
      });
      Panel p = new Panel();
      Panel p1 = new Panel();
      Label jFirstName = new Label("First Name");
      TextField lFirstName = new TextField(20);
      Label jLastName =new Label("Last Name");
      TextField lLastName=new TextField(20);
      p.setLayout(new GridLayout(3,1));
      p.add(jFirstName);
      p.add(lFirstName);
      p.add(jLastName);
      p.add(lLastName);
      Button Submit=new Button("Submit");
      p.add(Submit);
      p1.add(p);
     frm.add(p1,BorderLayout.NORTH);
      }

}

该文件保存为DataEntry.java,DataEntry.class文件位于同一目录中。有人可以告诉我我做错了吗?

1 个答案:

答案 0 :(得分:5)

运行Java类时,如果不提供类的文件名,则提供类名。如果您指定DataEntry.java,解释程序会认为您正在尝试在java包中加载课程DataEntry,这当然不存在。

而不是:

java DataEntry.java

这样做:

java DataEntry