我操作系统是2003的,jdk安装目录是E:\java\jdk,环境变量像下面这样设置path=E:\Java\jdk\bin,classpath=.;E:\Java\jdk\lib\dt.jar;E:\Java\jdk\lib\tools.jar
我将java源文件hello.java放在E:\Java\jdk\bin目录下,然后在命令行下进入这个目录进行编译,javac hello.java是通过了,hello.class文件也生成在E:\Java\jdk\bin目录下了,但java hello时总是报错Exception in thread "main" java.lang.NoClassDefFoundError: Hello,实在是郁闷啊!!!
我将java源文件hello.java放在E:\Java\jdk\bin目录下,然后在命令行下进入这个目录进行编译,javac hello.java是通过了,hello.class文件也生成在E:\Java\jdk\bin目录下了,但java hello时总是报错Exception in thread "main" java.lang.NoClassDefFoundError: Hello,实在是郁闷啊!!!
Exception in thread \"main\" java.lang.NoClassDefFoundError: HelloWorld
呵呵,这个嘛,就是著名的类路径(classpath)问题啦。实际上,类路径是在编译过程就
涉及的Java中的概念。classpath就是指明去哪里找用到的类,就这么简单。由于我们的
HelloWorld没用到其它的(非java.lang包中的)类,所以编译时没遇到这个问题。运行
时呢,就要指明你的类在哪里了。解决方法嘛,可以用下面的命令运行:
java -classpath . HelloWorld
“.”就代表当前目录。当然这样做有点麻烦(是“太麻烦”!),我们可以在环境变量
中设置默认的classpath。方法就照上述设置path那样。将classpath设为:
classpath=.;E:\\java\\jdk\\lib\\dt.jar;E:\\java\\jdk\\lib\\tools.jar 后面的两个建议也设上
,以后开发用的着。
java -classpath . HelloWorld(再不出来我就不学java了)
ALLUSERSPROFILE=C:\Documents and Settings\All Users
ant_home=D:\eclipse-SDK-3.2-win32\eclipse\plugins\org.apache.ant_1.6.5
APPDATA=C:\Documents and Settings\Administrator\Application Data
classpath=.;C:\jdk1.5.0\lib\tools.jar;C:\jdk1.5.0\lib\dt.jar;D:\eclipse-SDK-3.2
win32\eclipse\plugins\org.junit4_4.1.0\junit-4.1.jar
ClusterLog=C:\WINDOWS\Cluster\cluster.log
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=NETEC-MARIKS
ComSpec=C:\WINDOWS\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Documents and Settings\Administrator
java_home=C:\jdk1.5.0
LOGONSERVER=\\NETEC-MARIKS
NUMBER_OF_PROCESSORS=1
OS=Windows_NT
Path=D:\eclipse-SDK-3.2-win32\eclipse\plugins\org.apache.ant_1.6.5\bin;C:\jdk1.
.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 1 Stepping 3, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0103
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp
USERDOMAIN=NETEC-MARIKS
USERNAME=Administrator
USERPROFILE=C:\Documents and Settings\Administrator
windir=C:\WINDOWSC:\>
看看这样来:
JAVA_HOME=E:\Java\jdk
CLASSPATH=.;%JAVA_HOME%\lib;=.;%JAVA_HOME%\jre\lib;
path==%JAVA_HOME%\bin注意路径不能有空格,最好是拷贝.这样设置后以后重装jdk在别的路径也只是改下JAVA_HOME的,别的不用管。
还有你要看你path中还有没有别的jdk的设置,比如装了oracle的话他会改你的