马士兵老师的源代码,在我朋友机子上可以通过,在我的机子上可以编译,只是一运行就出现
Exception in thread "main" java.lang.NoClassDefFoundError :TFMath
请问大家这要怎么解决!!谢谢!!!import java.awt.*;
import java.awt.event.*;public class TFMath {
public static void main(String[] args) {
new TFFrame().launchFrame();
}
}class TFFrame extends Frame {
TextField num1, num2, num3;
public void launchFrame() {
num1 = new TextField(10);
num2 = new TextField(10);
num3 = new TextField(15);
Label lblPlus = new Label("+");
Button btnEqual = new Button("=");
btnEqual.addActionListener(new MyMonitor());
setLayout(new FlowLayout());
add(num1);
add(lblPlus);
add(num2);
add(btnEqual);
add(num3);
pack();
setVisible(true);
}

private class MyMonitor implements ActionListener  {
public void actionPerformed(ActionEvent e) {
int n1 = Integer.parseInt(num1.getText());
int n2 = Integer.parseInt(num2.getText());
num3.setText("" + (n1+n2));
}
}

}
//class MyMonitor implements ActionListener {
//TextField num1, num2, num3;
/*
public MyMonitor(TextField num1, TextField num2, TextField num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
}
*/
/*
TFFrame tf = null;

public MyMonitor(TFFrame tf) {
this.tf = tf;
}

public void actionPerformed(ActionEvent e) {
int n1 = Integer.parseInt(tf.num1.getText());
int n2 = Integer.parseInt(tf.num2.getText());
tf.num3.setText("" + (n1+n2));

}
}*/

解决方案 »

  1.   

    在你的ClassPath变量上加上一个.
      

  2.   

    classpath设置问题吧你到百度上搜下“JAVA classpath 设置”
      

  3.   

    谢谢大家的回复,我在网上找了classpath的设置方法也设置了`还是不行!
      

  4.   

    运行出错
    不是路劲问题
    就是JRE了要不你重新装下JRE看看
    再设置下classpath
      

  5.   

    你在CMD里输入java -version有什么没?
      

  6.   

    在网上找了个,你试试可以不安装好JDK和JRE后进行配置
    1.右击“我的电脑”,打开“属性”,选择“高级”里面的“环境变量”。在新打开的界面中系统变量需要设置三个属性。在没安装过JDK的电脑中path属性是本来存在的。2.点击“新建”,然后变量名写上"java_home",顾名思义就是java的安装路径,然后在变量值写上刚才的安装路径,如"c:\Program Files\Java\jdk1.6.0"。3.在系统变量里找到path,点击编辑。path的含义就是系统在任何路径下都可以识别java命令。添加变量值";%java_home%\bin;%java_home%\jre\bin"。(其中"%java_home%"的意思是刚才设置的java_home的值)4.点击“新建”,然后变量名写上"classpath",该变量的含义为java加载类(bin or lib)的路径,只有类在classpath中,java命令才能识别。其值为".;%java_home%\lib;%java_home%\lib\tools.jar"(要加圆点.表示当前路径)。5.验证是否安装成功。点击“开始”->“运行”,输入"cmd",进入命令行界面,打入"java -version",如果安装成功,则系统显示    java version "1.6.0"
      

  7.   

    他可能是环境变量没有配好,也可能是没有javac直接就java了
    他没有写X时的时间代码把
      

  8.   

    可能的情况:
    1.环境没配好;
    2.没有javac TFM.java就直接java TFM或者TFM.java,会报Exception in thread "main" java.lang.NoClassDefFoundError :TFMath ;
    3.即使javac TFM.java了,楼主还是输入java TFM.java,同上错误;
      

  9.   


    javac这个倒不是很...重要吧,可能还是classPATH配置问题了,实在不行重新配遍
      

  10.   

    楼主是在命令行下编译运行的吗?如果是的话,用javac能编译通过,那么java运行应该没有问题,建议拷到eclipse或者其他IDE下试一下。
      

  11.   

    1)检查java是否安装正确,在dos窗口下输入javac和java看是否正常
    2)classpath是否设置.,代表当前目录
      

  12.   

    装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide装ide好吧,每天都会碰到几个这样的问题
      

  13.   

    在你的环境变量classpath中加个.
    classpath=d:\java\jdk1.5\bin;.;
      

  14.   

    都错了,是path没设对,不是classpath
      

  15.   

    说这么多,那你先写个史上最经典的 Helloworld.java,一试便知。
    如果连这个都跑不动,那你电脑的智商也就够上幼儿园的了。
      

  16.   

    classpath设置的问题上面老兄的可以借鉴一下
      

  17.   

    用java -version如果没有找到命令,就是path没配好
    要不就是classpath没配好
      

  18.   

    我也碰到这种问题,而运行别的程序都是可以的,MS环境变量也按SARA520说的修改了,还是米有用唉
    偶的程序是、
    import javax.swing.*;public class AdditionTutor{
    public static void main(String[] args){
    int number1=(int)(System.currentTimeMillis()%10);
    int number2=(int)(System.currentTimeMillis()*7%10);

    String answerString=JOptionPane.showInputDialog
    ("What is "+number1+"+"+number2+" ?");

    int answer=Integer.parseInt(answerString);

    JOptionPane.showMessageDialog(null,
    number1+"+"+number2+"="+answer+"is"+
    (number1+number2==answer));
    }
    }声明下,我已经生成.class 文件了
      

  19.   

    我的也是,怎么回事这,环境变量已经按照网上的指导配置好了,输入java -version 有提示,javac 就抛出异常:Exception in thread 'main' java.lang.NoClassDefFoundError: com/sun/tools/javac/Main 
    纠结!