问题描述
MyJava.java调用了另一个文件HisJava.java里的一个类我使用EditPlus,编译、运行都正常但是,当我修改了HisJava里的代码后,返回MyJava,重新编译,能通过,但就是不能运行,出现了:Exceptioninthread"main"java.lang.NoClassDefFoundError:MyJava我尝试着在DOS里运行命令:javaMyJava却是正常的!更奇怪的是,在EditPlus里,将MyJava的所有代码复制,然后新建一个文件,把复制的所有代码粘贴进去,保存,覆盖掉MyJava,再运行,竟然没有出现错误。困惑死了。EditPlus的问题????
解决方案
解决方案二:
CLASSPATH的问题
解决方案三:
不太可能是EDITPLUS的问题。至少我没遇到过。就楼上所说。检查下你的CLASSPATH。有没有。这个?
解决方案四:
不对,记错了。是直接分号;表示在当前文件夹寻找.class
解决方案五:
你先把你改过之后的HisJava.java编译为.class文件在去重新调用试试看,照尼说的,你在DOC里面运行javaMyJava正常那样因为运行的是你欠一次编译的MyJava.class文件
解决方案六:
注意class文件有没有包名什么的,有就给去掉
解决方案七:
楼主最好把代码贴出来,让大家都来试试,看看到底是不是因为EditPlus的问题~
解决方案八:
引用6楼yang3wei的回复:
楼主最好把代码贴出来,让大家都来试试,看看到底是不是因为EditPlus的问题~
MyJava.javaimportjava.awt.*;importjava.awt.event.*;publicclassMyJava{privateFramef=newFrame("调用其他窗口的类");privateTextFieldtf=newTextField(40);privateButtonsend=newButton("发送");publicvoidinit(){send.addActionListener(newHisJava(tf));f.add(tf);f.add(send,BorderLayout.SOUTH);f.pack();f.setVisible(true);}publicstaticvoidmain(String[]args){newMyJava().init();}}
HisJava.javaimportjava.awt.*;importjava.awt.event.*;publicclassHisJavaimplementsActionListener{privateTextFieldmail;publicHisJava(TextFieldmail){this.mail=mail;}publicvoidactionPerformed(ActionEvente){System.out.println(mail.getText());}}
解决方案九:
很搞怪啊?电脑的问题?如果有问题,一开始就不能通过编译,并成功运行!
解决方案十:
LZ第一次不能运行的时候是在哪里运行的
解决方案十一:
引用9楼landen11的回复:
LZ第一次不能运行的时候是在哪里运行的
MyJava.java和HisJava.java的代码都输入完毕后,返回MyJava,编译正常、运行正常,出现窗口(Frame)接下来,比如我修改了HisJava里的代码:System.out.println(mail.getText());修改为:System.out.println("hello,"+mail.getText());保存,并编译一次再然后,切换到MyJava,编译-正常;运行——就不行了,出现了:Exceptioninthread"main"java.lang.NoClassDefFoundError:MyJava于是,就出现了帖子开头的情况:将MyJava的所有代码复制,然后新建一个文件,把复制的所有代码粘贴进去,保存,覆盖掉MyJava,再运行,竟然没有出现错误。