为什么这段代码运行会报错
/**
* 此类用于在屏幕上显示消息。
*
* @ version1.0,2005 年 5 月 20 日
* @author Michael
*/
public class Message {
/**
* 这是一个 main 方法
*/
public static void main(String [] args) {
/* 输出此消息 */
System.out.println("欢迎来到 Java 世界!");
}
}在cmd下敲下这些。为什么在eclipse上就好用那
D:\>javac Message.javaD:\>java Message
Exception in thread "main" java.lang.NoClassDefFoundError: MessageD:\>
/**
* 此类用于在屏幕上显示消息。
*
* @ version1.0,2005 年 5 月 20 日
* @author Michael
*/
public class Message {
/**
* 这是一个 main 方法
*/
public static void main(String [] args) {
/* 输出此消息 */
System.out.println("欢迎来到 Java 世界!");
}
}在cmd下敲下这些。为什么在eclipse上就好用那
D:\>javac Message.javaD:\>java Message
Exception in thread "main" java.lang.NoClassDefFoundError: MessageD:\>
值为.;
set classpath=%classpath%;.
或者 计算机右键属性-高级-环境变量 classpath后面加上;..就是当前路径 把当前路径加到classpath里面就可以运行了.
楼上已经说得很明白了呵呵!不重复!
CLASSPATHD:\J2EE\JAVA\jdk1.5.0_06\lib\dt.jar;D:\J2EE\JAVA\jdk1.5.0_06\lib\tools.jarJAVA_HOME
D:\J2EE\JAVA\jdk1.5.0_06PATH
D:\J2EE\JAVA\jdk1.5.0_06\bin
.;D:\J2EE\JAVA\jdk1.5.0_06\lib\dt.jar;D:\J2EE\JAVA\jdk1.5.0_06\lib\tools.jar
其实你又没有引用其它的包,照理是不会出错的
Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class
(as part of a normal method call or as part of creating a new instance using the new expression)
and no definition of the class could be found. The searched-for class definition existed when the currently executing class was compiled,
but the definition can no longer be found.我的分析:
java 虚拟机可不像人那么聪明。既然它报这个异常,就一定没找到这个类。
java 虚拟机怎么找类呢?当然是按照classpath的路径去找哦。
既然JVM在当前目录没找着。说明你的classpath路径肯定没包含当前目录。
所以check一下你的classpath看有没有配这个点“.”,这个点代表的就是当前目录。一定要配上呀。