我写了一小段非常简单的程序:Hello.java
import java.util.*;public class Hello{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}然后执行 javac Hello.java
编译通过了,并且生成了字节码文件Hello.class,
但是在执行java Hello时,系统报错:
Exception in thread "main" java.lang.NoClassDefFoundError:Hello
请问这是为什么?
import java.util.*;public class Hello{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}然后执行 javac Hello.java
编译通过了,并且生成了字节码文件Hello.class,
但是在执行java Hello时,系统报错:
Exception in thread "main" java.lang.NoClassDefFoundError:Hello
请问这是为什么?
这个都不懂,
你的classpath有问题,还有就是没有就是缺少包了
设置办法,右键点我的电脑,选择属性,在高级里面找环境变量,然后找path,然后把你java的安装路径里面的bin这个文件夹的完整目录(如:C:\Program Files\Java\jdk1.5.0_01\bin;)添加到path里面,最后点确定,然后再试试你的程序
出现这个问题是因为解释器在他认为的路径上搜索不到你的class所在的位置,你要加上奥!!
加上你的hello.class的路径即可。
CLASSPATH:C:\j2sdk1.4.2\lib\tools.jar;C:\j2sdk1.4.2\lib\dt.jar
PATH:C:\j2sdk1.4.2;C:\j2sdk1.4.2\bin;
象PATH:C:\j2sdk1.4.2;C:\j2sdk1.4.2\bin;.这样的,试试看
//你的CLASSPATH设置
CLASSPATH:C:\j2sdk1.4.2\lib\tools.jar;C:\j2sdk1.4.2\lib\dt.jar//正确的CLASSPATH设置
CLASSPATH:.;C:\j2sdk1.4.2\lib\tools.jar;C:\j2sdk1.4.2\lib\dt.jar
应该是classpath设置错了。
分析:如果是path 路径出错的话,那么连JAVA命令都不能运行,怎么会编译出Hello.class来。
既然不是PATH的问题,而且又出现了
“Exception in thread "main"java.lang.NoClassDefFoundError:Hello”的错误,那么只能是
classpath的设置错误了。1。如果你用的是WIN2000或者是WINDOWS NT。可以用快捷键 (位于CTRL和ALT中间的一个键 +Pause Break)调出属性对话框。
2。我的电脑(右击)-属性-高级-环境变量
设置classpath=.;(你所要保存文件的目录)
注意(.)是关键。它是说明在当前文件下找 (执行所需要的类)
举例:如果你的 Hello.java 所在的路径为:e:\javawork\
而(命令提示符)当前路径为 E:\>javawork>
这时如果写了.那编译器就在e:\javawork\去找 Hello.class.
这时,当然能够找到。
同样,如果没有写点,你也可以把你的classpath这样设置。
classpath=e:\javawork\
这样也可以。建议你最好写上点。
如果还有什么问题,请加我MSN: [email protected]
括号在前面