为什么很简单的一断代码运行就会报错啊

sjsja82s 2008-04-14 07:54:44
为什么这段代码运行会报错
/**
* 此类用于在屏幕上显示消息。
*
* @ 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.java

D:\>java Message
Exception in thread "main" java.lang.NoClassDefFoundError: Message

D:\>
...全文
278 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
wensheng_zh2007 2008-04-15
  • 打赏
  • 举报
回复
classpath中的 ".;" 表示可以加载应用程序的当前目录中的无名包类,而且当前目录下的子目录可以作为包的名字来使用
sjsja82s 2008-04-15
  • 打赏
  • 举报
回复
谢谢 果然是这个问题。。。
yangliuqing321 2008-04-15
  • 打赏
  • 举报
回复
学习了,谢谢
橘子香水 2008-04-15
  • 打赏
  • 举报
回复
一般初学者容易犯这些小问题.
tganthem 2008-04-14
  • 打赏
  • 举报
回复
加个".\;",表示在当前路径中寻找~~~
psyl 2008-04-14
  • 打赏
  • 举报
回复
设置下classpath~! 加上 ";" 封号
SecretValley 2008-04-14
  • 打赏
  • 举报
回复
J_Factory 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 vip_zhujing 的回复:]
引用 14 楼 sjsja82s 的回复:
我是楼主这个有错误吗?
CLASSPATH

D:\J2EE\JAVA\jdk1.5.0_06\lib\dt.jar;D:\J2EE\JAVA\jdk1.5.0_06\lib\tools.jar

JAVA_HOME
D:\J2EE\JAVA\jdk1.5.0_06

PATH
D:\J2EE\JAVA\jdk1.5.0_06\bin


CLASSPATH中应该加上".",表示当前路径,应该为
.;D:\J2EE\JAVA\jdk1.5.0_06\lib\dt.jar;D:\J2EE\JAVA\jdk1.5.0_06\lib\tools.jar
[/Quote]
果然有用,靠被书误导了那么久还以为系统有问题,感谢lz的帖啊~~~~~~~~~~
加个.;就好了
sunJAVAchris 2008-04-14
  • 打赏
  • 举报
回复
java doc 官方文档:
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看有没有配这个点“.”,这个点代表的就是当前目录。一定要配上呀。
lpingxh 2008-04-14
  • 打赏
  • 举报
回复
程序没有问题,一定是环境配置问题,在你现在的classpath前加 .\; 试试
其实你又没有引用其它的包,照理是不会出错的
vip_zhujing 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 sjsja82s 的回复:]
我是楼主这个有错误吗?
CLASSPATH

D:\J2EE\JAVA\jdk1.5.0_06\lib\dt.jar;D:\J2EE\JAVA\jdk1.5.0_06\lib\tools.jar

JAVA_HOME
D:\J2EE\JAVA\jdk1.5.0_06

PATH
D:\J2EE\JAVA\jdk1.5.0_06\bin

[/Quote]
CLASSPATH中应该加上".",表示当前路径,应该为
.;D:\J2EE\JAVA\jdk1.5.0_06\lib\dt.jar;D:\J2EE\JAVA\jdk1.5.0_06\lib\tools.jar
beckham41 2008-04-14
  • 打赏
  • 举报
回复
应该就是配置咯
sjsja82s 2008-04-14
  • 打赏
  • 举报
回复
我是楼主这个有错误吗?
CLASSPATH

D:\J2EE\JAVA\jdk1.5.0_06\lib\dt.jar;D:\J2EE\JAVA\jdk1.5.0_06\lib\tools.jar

JAVA_HOME
D:\J2EE\JAVA\jdk1.5.0_06

PATH
D:\J2EE\JAVA\jdk1.5.0_06\bin
likgui 2008-04-14
  • 打赏
  • 举报
回复
classpath没配置
hmsuccess 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 homesos 的回复:]
可能是classpath路径问题
[/Quote]
wtmiao000 2008-04-14
  • 打赏
  • 举报
回复
classpath没有配置的问题!
楼上已经说得很明白了呵呵!不重复!
枫叶rain 2008-04-14
  • 打赏
  • 举报
回复
把路径配置好就可以了啊
yriio 2008-04-14
  • 打赏
  • 举报
回复
cmd下敲:
set classpath=%classpath%;.


或者 计算机右键属性-高级-环境变量 classpath后面加上;.

.就是当前路径 把当前路径加到classpath里面就可以运行了.
findself 2008-04-14
  • 打赏
  • 举报
回复
classpath路径,再用户环境变量中建一个名为classpath的变量
值为.;
sky_ccy 2008-04-14
  • 打赏
  • 举报
回复
classpath 没设置呀,,兄弟
加载更多回复(6)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧