我觉得应该是环境变量问题。因为
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、这个是书上源代码下载来的
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 也设置过了。到底是什么问题啊。好烦哦!
public Main() {
}
public static void main(String[] args) {
System.out.println("That's OK!");// TODO code application logic here
}
}
这样试试看 我运行就可以 我的也是JDK1.5
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...
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)上面的是结果。应该设置对了的。
package MyProgram.java;
那就要把Main.class放到文件夹MyProgram/java里
执行
java MyProgram/java/Main
当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。 当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
core java2 第7版上说, 对于简单的java应用程序,不用设置classpath!!
java MyProgram