我用的XP系统,装在C:\j2sdk1.4.1_07环境变量是这样设置:
java_home=C:\j2sdk1.4.1_07
path=C:\j2sdk1.4.1_07\bin
classpath=C:\j2sdk1.4.1_07\lib\tools.jar;C:\j2sdk1.4.1_07\jre\lib\rt.jar;但是在CMD里打java-version,javac都显示不是内部和外部命令,但打java就有大篇的英文出来重查了几遍,感觉环境变量设置没问题,但是还是不能随便用javac命令,非打路径不可.helloworld的问题到是解决了,我把生成的.class文件直接复制到\bin下面就可以执行。但总觉得不甘心,很别扭,所以请大大们告诉我一下,是否设置好变量后要重启才能生效?(我也试了重启CMD,没用)

解决方案 »

  1.   

    JAVA_HOME=C:\j2sdk1.4.1_07 
    path=%path%;%JAVA_HOME%\bin设置完之后, 要重新打开一个CMD
      

  2.   

    一般没有这个问题,,,配置好环境变量就能用的,但不可以把变量前面的内容删掉,可以参考一下我的:java_home=D:\Programs\Java\jdk1.6.0_06path=C:\Perl\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%Java_Home%\bin;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\Microsoft SQL Server\80\Tools\BINNclasspath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;我的是有C++,SQL,JAVA的,如果有多个,用分号分开...我看你的应该是两个路径都错了,,,不可以把前面含有%的内容删掉的
      

  3.   

    java -version,注意中间有个空格的.javac不行的话,在CMD里面用  echo %path% 看一下包含了 C:\j2sdk1.4.1_07\bin 这个了没有
      

  4.   

    重新打开一个CMD就好了 不用重启
      

  5.   

    1. 检查一下 java,javac 是不是在你指定的目录下。用 JDK 5 好久了,JDK 1.4 不熟,也许是在 C:\j2sdk1.4.1_07\jdk\bin 下。
    2. 习惯上 java_home 要大写,即 JAVA_HOME。如果你设置了 JAVA_HOME 变量,下面就可以用了,比如:
    path = %JAVA_HOME%\jdk\bin;
    3. classpath=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\rt.jar; 关键是最开始的那个英文句号和分号,表示当前目录,这样你的 class 文件就不用拷贝到 \bin 目录下了。
    4. 你的环境变量是怎么设置的?Windows 里,右键“我的电脑”-“属性”,“高级”标签,点“环境变量”按钮,在“系统变量”里设置。已经有的变量,用“编辑”添加你要的内容就可以了;没有的变量,你要自己“新建”
      

  6.   

    不用,LZ这东西自己试试不就OK了,程序员自己还是多动动手!!!
      

  7.   


    classpath=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\rt.jar;中一定要有点号,另外如果你不想吧.class文件复制到\bin下,可以在classpath后面加上你存放.class文件的路径比如D:\Java。那你只需吧classpath改成classpath=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\rt.jar;D:\Java即可。
      

  8.   

    重新打开CMD就OK了
      你的怎么样没有.;
      
      

  9.   

    你这个java_home设置的是不是有点多余啊?
      

  10.   

    classpath改为:
    classpath=C:\j2sdk1.4.1_07\lib\tools.jar;.;C:\j2sdk1.4.1_07\jre\lib\rt.jar;
    注意中间的".;",它表示当前目录,这样就不用copy了
    换个1.6的吧.1.5都加了好多特性了.
      

  11.   

    不需要重启。写一个类似脚本文件,这样不会和其它版本冲突。@echo offREM Set java env variables
    set PATH=C:\jdk1.5.0_16\bin;%PATH%set CLASSPATH=.;E:\Java\Learning;%CLASSPATH%
      

  12.   

    楼主 注意了path=C:\j2sdk1.4.1_07\bin 
    classpath=C:\j2sdk1.4.1_07\lib\tools.jar;C:\j2sdk1.4.1_07\lib\dt.jar

    并且path 要在Administrator 用户变量中
    classpath则在系统变量中.. 切记哦
      

  13.   


    我试了一下,果然不包含。请问这是否意味着PATH设置有问题?
      

  14.   

    感谢楼上诸位大大的回帖,有你们的帮助,我感觉在学习的路上一点也不孤单
    javac的问题只是个小问题,我安装的JDK已经能够正常运行,所以我打算继续往下学习,不在这个问题上耽误时间。。但是
    试了各位大的方法,问题仍然存在,所以这个帖子暂时不结。放在这,也许以后我自己能找到答案java -version显示正常,感谢lxxzhy 的提醒。现在是这样:
    我在D盘写了helloworld.java.
    CMD目前路径为D:\>
    我用javac helloworld.java , 显示不是内部或外部命令。
    我到C:\j2sdk1.4.1_07\bin  下 javac d:\helloworld.java ,编译成功,.class文件保存在D盘下
    然后CMD再次回到D:用 java helloworld, 显示成功。
    很奇怪。。同是bin下的命令,在同一路径下,为何java可用,而javac却不可用??这就是我现在的问题。
      

  15.   

    环境变量没有设置好.
    classpath=C:\j2sdk1.4.1_07\lib\tools.jar;.;C:\j2sdk1.4.1_07\lib\rt.jar;