原因很多
有可能是配置的原因,也有可能是你代码的问题
你的main函数部分必须这样写:(完整的示例如下)
import java.io.*;
public class HelloWorld{
public static void main(String args[]){
System.out.println("Hello World!");
}
}
然后你compile它之后生成HelloWorld.class,运行java HelloWorld试试,如果还有问题的话就是你的ClassPath的设置问题
有可能是配置的原因,也有可能是你代码的问题
你的main函数部分必须这样写:(完整的示例如下)
import java.io.*;
public class HelloWorld{
public static void main(String args[]){
System.out.println("Hello World!");
}
}
然后你compile它之后生成HelloWorld.class,运行java HelloWorld试试,如果还有问题的话就是你的ClassPath的设置问题
java xxxx
时,其实它是执行名字为xxxx的这个类,而并不是xxxx.class这个文件,这和C/c++以及其他语言所完全不同的。所以,当java虚拟机不能找到xxxx这个类(包括它引用的其他类)时(java自动在你所设定的类搜索路径里搜索,类搜索路径在系统classpath里设置,但是你永远也无法确定和涵盖你在这个系统里面可能产生的所有类搜索路径),它就会报告错误:Exception in thread "main" java.lang.NoClassDefFoundError: d:\j2sdk\helloworld/class
此时,你可以用如下办法来解决:
假设你的java程序编译成功并放在 /tmp目录下,文件名为:helloworld.class
(注意大小写,并且假设你没有自定义包)
java -classpath /tmp helloworld如果你自定义了包,假设是package myjava,并且位于/tmp下,类文件名还是同上:
java -classpath /tmp myjava.helloworld这是最简单的情况,如果此程序中还引用了大量的其他分布在各个不同位置和包的类则需要另外考虑。但是这种原因根本上就是找不到类定义的明确表现。
class HelloWord
{
public static void main(String args[])
{
System.out.println("Hello Word!");
}
}
你可以比较一下,矫正错误。注意大小写。