在网上查了N多的java配置环境的。也一步步按着做了。
环境如下:
win2003系统:
环境变量:
JAVA_HOME=C:\Java\jdk1.5.0_06
Path = %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
classpath=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar之前我还装了,eclipse.exe程序,可以正常运行。
用D:\>java -version也能显示如下信息
java version "1.5.0_06"
但是我写一个
class Hello
{
public static void main(String [] args)
{
System.out.println("Hello Word");
}
}hello程序后用javac hello.java时,在Dos下编辑,始终是提下如下错误D:\>javac hello.java
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/M
ain到底为什么啊。

解决方案 »

  1.   

    文件名是Hello.java,B4一下楼主这种标题党
      

  2.   

    环境变量 有这两个就够了,JAVA_HOME=C:\Java\jdk1.5.0_06
    Path = %JAVA_HOME%\bin;去掉 classpath=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
      

  3.   

    文件名是没错啊,在eclipse.exe可以运行。
    我只是搞了太久,还没搞定很不爽而已啊。
    且每次设置一下环境变量,都要注销一下,很是麻烦的。
      

  4.   

    把 PATH 改成 Path =C:\Java\jdk1.5.0_06\bin; 试试
      

  5.   

    javac hello.java应该是 javac Hello.java吧eclipse没用过,不清楚,jdk是要区分的。
      

  6.   

    java的优势是在移植性和网络开发上的
      

  7.   

    to: kevinliuu(@。@) classpath 真的可以去掉。我测试过无数次了。下面是我的测试:------------------------------------
    D:\TEST>set
    ALLUSERSPROFILE=C:\Documents and Settings\All Users
    APPDATA=C:\Documents and Settings\Administrator\Application Data
    CommonProgramFiles=C:\Program Files\Common Files
    COMPUTERNAME=C-07DTC7Q2G9KOI
    ComSpec=C:\WINDOWS\system32\cmd.exe
    FP_NO_HOST_CHECK=NO
    HOMEDRIVE=C:
    HOMEPATH=\Documents and Settings\chenxk
    JAVA_HOME=C:\jdk1.6.0
    LOGONSERVER=\\C-07DTC7Q2G9KOI
    NUMBER_OF_PROCESSORS=1
    OS=Windows_NT
    Path=C:\jdk1.6.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\
    Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\Symantec\pcAny
    where\;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;;C:\Sun\AppServer\bi
    n;D:\ant165\bin;;
    PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
    PROCESSOR_ARCHITECTURE=x86
    PROCESSOR_IDENTIFIER=x86 Family 6 Model 9 Stepping 5, GenuineIntel
    PROCESSOR_LEVEL=6
    PROCESSOR_REVISION=0905
    ProgramFiles=C:\Program Files
    PROMPT=$P$G
    SESSIONNAME=Console
    SystemDrive=C:
    SystemRoot=C:\WINDOWS
    TEMP=C:\DOCUME~1\Administrator\LOCALS~1\Temp
    TMP=C:\DOCUME~1\Administrator\LOCALS~1\Temp
    USERDOMAIN=C-07DTC7Q2G9KOI
    USERNAME=Administrator
    USERPROFILE=C:\Documents and Settings\Administrator
    WF_RESOURCES=D:\oracle\ora92\WF\RES\WFus.RES
    windir=C:\WINDOWSD:\TEST>javac Hello.javaD:\TEST>java Hello
    Hello WordD:\TEST>
    ----------------------------------------这里边根本没有classpath环境变量。至于 IDE 用到的 类路径,是由 IDE 自己负责。
      

  8.   

    to:trumplet(检查) 
    谢谢你的积极回答,但还是不行啊。
      

  9.   

    To trumplet(检查)也许是windows下安装的时候设置了什么吧我在linux下用j2se 1.4非带netbean安装版,是需要设置classpath的,不然不行的
      

  10.   

    再注意一下,是在哪个子目录下干的这个活:D:\TEST>type Hello.java
    class Hello
    {
            public static void main(String [] args)
    {
            System.out.println("Hello Word");
    }
    }D:\TEST>javac Hello.javaD:\TEST>java Hello
    Hello WordD:\TEST>
      

  11.   

    我安装的是jdk 1.6.0 beta2,除了把安装路径 改成c:\1.6.0 以外,没做如何修改。1.5.0也是一样的。
      

  12.   

    我的测试是这样的。
    D:\>set
    ALLUSERSPROFILE=C:\Documents and Settings\All Users
    APPDATA=C:\Documents and Settings\administrator.HONGTAI\Application Data
    ClusterLog=C:\WINDOWS\Cluster\cluster.log
    CommonProgramFiles=C:\Program Files\Common Files
    COMPUTERNAME=HUANGWB
    ComSpec=C:\WINDOWS\system32\cmd.exe
    FP_NO_HOST_CHECK=NO
    HOMEDRIVE=C:
    HOMEPATH=\Documents and Settings\administrator.HONGTAI
    JAVA_HOME=C:\Java\jdk1.5.0_06
    LOGONSERVER=\\SVR
    NUMBER_OF_PROCESSORS=1
    OS=Windows_NT
    Path=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Mi
    crosoft SQL Server\80\Tools\BINN;C:\PROGRA~1\Borland\Delphi6\Bin;C:\PROGRA~1\Bor
    land\Delphi6\Projects\Bpl;C:\Java\jdk1.5.0_06\bin
    PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.VBS
    PROCESSOR_ARCHITECTURE=x86
    PROCESSOR_IDENTIFIER=x86 Family 15 Model 2 Stepping 4, GenuineIntel
    PROCESSOR_LEVEL=15
    PROCESSOR_REVISION=0204
    ProgramFiles=C:\Program Files
    PROMPT=$P$G
    SESSIONNAME=Console
    SystemDrive=C:
    SystemRoot=C:\WINDOWS
    TEMP=C:\DOCUME~1\ADMINI~1.HON\LOCALS~1\Temp
    TMP=C:\DOCUME~1\ADMINI~1.HON\LOCALS~1\Temp
    USERDNSDOMAIN=HONGTAI.COM.CN
    USERDOMAIN=HONGTAI
    USERNAME=administrator
    USERPROFILE=C:\Documents and Settings\administrator.HONGTAI
    windir=C:\WINDOWSD:\>java -version
    java version "1.5.0_06"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
    Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)D:\>type Hello.java
    class Hello
    {
            public static void main(String [] args)
    {
            System.out.println("Hello Word");
    }
    }
    D:\>javac Hello.java
    Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/M
    ainD:\>
      

  13.   

    不知道是不是我装我NetBeans 5.5 Beta的原因,这个东东好像是用1.42版的。
      

  14.   

    netbeans 5.0 捆绑的就已经是 1.5.0_07 了。5.5 还没有捆绑 jdk,你的jdk一定是你单独安装的。可以看看你的jdk的版本:D:\>java -version
      

  15.   

    在用 javac -version 看一下版本。
      

  16.   

    D:\>java -version
    java version "1.5.0_06"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
    Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
      

  17.   

    老大   class Hello   要写成  public class Hello
      

  18.   

    这应该是windows/system(或者system32)中的javac.exe文件与java安装路径下的\lib\tools.jar的错误连接引起的。javac.exe负责com/sun/tools/javac/Main.class的初始化。如果安装的版本不正确,或者路径不对,那么这个“Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac/Main”错误就会被报告出来。你可以参考http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/classpath.html来配置环境变量。
      

  19.   

    且每次设置一下环境变量,都要注销一下,很是麻烦的。你是怎么设的,Eclipse只要设一次就行了
    Eclipse是免费开源的,不是所有包都是一个公司做的
    国内可能觉得免费没什么,你想想要是大家都买正版的你用得起别的吗
      

  20.   

    classpath=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib;
    javac Hello.java
    类名首字母大写!
      

  21.   

    nirvana_li(东成西就,芝兰境界) 
    说的是正确的,我还没来得急看这帖子。
    而是事先把,JDK给卸载了,再用java和javac查,
    发现java显示没有发现命令,而javac 则显示
    Error opening registry key 'Software\JavaSoft\Java Runtime Environment'
    Error: could not find java.dll
    Error: could not find Java 2 Runtime Environment.
    所以才知道,还有那一个地方有javac,
    查找一下,发现是在windows/system32下(不知道为什么这个东东,可能是我以明自作聪明,自己把javac拷过去的。以为这样就可以不用设置环境了。其实是错了。),把它删除了。
    再安装后,没有任何设置,发现java也能执行,而javac则不能。
    再Path后加一条,JDK的安装路径\bin
    就可以了。
      

  22.   

    文件名的问题,还有就是classpath要配置 ./也就是当前目录,否则会找不到类的哦
      

  23.   

    " java 不知有什么好,配置环境都配置半天也不能搞定,竟那么多人用它! "
    楼处的这句话我觉得应该当做屁处理,环境变量配不明白说明自已智商有问题!!!请不要介意我说的这么直接!
          
                                         谢谢!!