我觉得应该是环境变量问题。因为
1、这个是书上源代码下载来的
2、在任何一个IDE里面都可以运行出错现象:可以编译,但是运行就报错  java.lang.NoClassDefFoundError源代码如下:
public class Main {
    public Main() {
    }
    public static void main(String[] args) {
        System.out.println("That's OK!");// TODO code application logic here
    }
}但是我的环境变量已经设置过了,我是这样设置的
用户变量中  classpath   对应   .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
系统变量中也是这样还有java_home  path 也设置过了。到底是什么问题啊。好烦哦!

解决方案 »

  1.   

    报错是  Exception in thread "main" java.lang.NoClassDefFoundError: MyProgram/java楼上的,把哪个public去掉?我用的是JDK 1.5
      

  2.   

    class Main {
        public Main() {
        }
        public static void main(String[] args) {
            System.out.println("That's OK!");// TODO code application logic here
        }
    }
    这样试试看 我运行就可以 我的也是JDK1.5
      

  3.   

    我知道在IDE里面可以运行的。但是我是初学者,不想依赖IDE,想在命令行下面学习。这样才可以更加深刻理解
      

  4.   

    1。 首先你现在命令行里面敲上 java -version, 看看能不能出来jdk的版本; 如果显示了正确的版本号, 说明你的配置没有问题。。
    2。 public class Main {
        public Main() {
        }
        public static void main(String[] args) {
            System.out.println("That's OK!");// TODO code application logic here
        }
    }, 源代码看上去是没有错误的;(你的构造函数可以删除)。
    3。 这个类的必须保存为Main.java;
    4.  在命令行中进入存放该文件(Main.java)的路径下, 然后在命令行中敲javac Main.java
    5.  这个时候应该在存放该文件(Main.java)的路径下产生Main.class文件;
    6。 执行java Main;OVER...
      

  5.   

    java version "1.5.0_07"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-b03)
    Java HotSpot(TM) Client VM (build 1.5.0_07-b03, mixed mode, sharing)上面的是结果。应该设置对了的。
      

  6.   

    如果你在程序里加了
    package MyProgram.java;
    那就要把Main.class放到文件夹MyProgram/java里
    执行
    java MyProgram/java/Main
      

  7.   

    NoClassDefFoundError
    当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。 当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
      

  8.   

    把classpath设为空!
     core java2 第7版上说, 对于简单的java应用程序,不用设置classpath!!
      

  9.   

    set classpath=.;
    java MyProgram