MyJava.java 调用了另一个文件HisJava.java里的一个类
我使用EditPlus,编译、运行都正常但是,当我修改了HisJava里的代码后,返回MyJava,重新编译,能通过,但就是不能运行,出现了:
Exception in thread "main" java.lang.NoClassDefFoundError: MyJava我尝试着在DOS里运行命令:
java MyJava
却是正常的!更奇怪的是,在EditPlus里,将MyJava的所有代码复制,然后新建一个文件,把复制的所有代码粘贴进去,保存,覆盖掉MyJava,再运行,竟然没有出现错误。困惑死了。EditPlus的问题????

解决方案 »

  1.   

    不太可能是EDITPLUS的问题。至少我没遇到过。就楼上所说。检查下你的CLASSPATH。有没有。这个?
      

  2.   

    不对 ,记错了。是直接分号 ; 表示在当前文件夹寻找.class
      

  3.   

    你先把你改过之后的HisJava.java编译为.class文件在去重新调用试试看,照尼说的,你在DOC里面运行
    java MyJava正常那样因为运行的是你欠一次编译的MyJava.class文件
      

  4.   

    注意class文件有没有包名什么的,有就给去掉
      

  5.   

    楼主最好把代码贴出来,让大家都来试试,看看到底是不是因为EditPlus的问题~
      

  6.   

    MyJava.javaimport java.awt.*;
    import java.awt.event.*;
    public class MyJava 
    {
    private Frame f=new Frame("调用其他窗口的类");
    private TextField tf=new TextField(40);
    private Button send=new Button("发送");
    public void init(){
    send.addActionListener(new HisJava(tf));
    f.add(tf);
    f.add(send,BorderLayout.SOUTH);
    f.pack();
    f.setVisible(true);
    }
    public static void main(String[] args) 
    {
    new MyJava().init();
    }
    }
    HisJava.javaimport java.awt.*;
    import java.awt.event.*;
    public class HisJava implements ActionListener
    {
    private TextField mail;
    public HisJava(TextField mail){
    this.mail=mail;
    }
    public void actionPerformed(ActionEvent e) 
    {
    System.out.println(mail.getText());
    }
    }
      

  7.   

    MyJava.java 和 HisJava.java 的代码都输入完毕后,返回MyJava,编译正常、运行正常,出现窗口(Frame)接下来,比如我修改了HisJava里的代码:
    System.out.println(mail.getText());
    修改为:
    System.out.println("hello," + mail.getText());
    保存,并编译一次再然后,切换到MyJava,编译-正常;运行——就不行了,出现了:
    Exception in thread "main" java.lang.NoClassDefFoundError: MyJava于是,就出现了帖子开头的情况:
    将MyJava的所有代码复制,然后新建一个文件,把复制的所有代码粘贴进去,保存,覆盖掉MyJava,再运行,竟然没有出现错误。