我先前装了一个JDK配置了环境用了一段时间
现在又重新装了一个JDK把先前的环境配置也改成现在装的JDK怎么现在命令行窗口中输入java -version
仍然显示的先前那个JDK呢?现在系统中运行JAVA编译是用的哪个JDK呢?

解决方案 »

  1.   

    看看环境变量中path里最前面配的jdk是哪个
      

  2.   

    去C:\windows\system32下面是不是有个java.exe和javaw.exe,看看那个java.exe是什么版本的。
      

  3.   

    注意用户变量和系统变量两个分栏里面的path。。它们是叠加到一起做为java的环境变量的。
      

  4.   

    嗯,是以前那个。是不是如果改为另外一个的话,直接删了这个,把别外那个java.exe拷贝过来呢?
      

  5.   

    如果要装新的JDK的话,需要把path加到path环境变量的最前端,这样在查找JDK的path的时候才能第一个找到最前端的JDK,也就是新装的JDK
      

  6.   

    不行啊,我是这样设的,tomcat都能识别出我后来装那个,但在命令行窗口里输入java -version就是显示以前那个!
      

  7.   


    cmd先找system32里面的,覆盖吧。
      

  8.   

    谢谢各位问题得到解决将%JDK_HOME%\bin目录放在Windows操作系统的PATH变量的首位,就可以避免了这种情况了 
      

  9.   

    lz装一个jdk6.0(也是1.6)就可以了,省的麻烦,jdk6.0兼容以前版本。把它卸载了,装个1.6的
      

  10.   


    你在命令窗口输入:java -version
    就是想知道 你现在所用的JDK的版本号。当你输入java XXX的时候 java.exe(包装器)就会去找
    相应的 JRE来执行类文件。 首先从java.exe本身的目录下找JVM(java虚拟机);如果没有,就会去java.exe的父目录(也就是java.exe的上一个目录)下的JRE找JVM(java虚拟机)
    如果还是没有找到JVM(java虚拟机),第三条路径:自动查询Windows
    Registry(HKEY_LoCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\)所以到底是哪一个版本的JRE被用来执行 java应用程序 跟 java.exe找到哪一个JRE是连在一起的,java.exe按上面的路径找到的是哪个版本的JRE就是 哪个版本的JDK(其实是JRE)来执行你所编译的类文件。当然你又会问 我说这些等于没说,的确如此。
    因为当你安装一个JDK(没去掉安装在program Files下的JRE)那么至少会有两个 java.exe(包装器)
    那么当你在命令行输入:java xxx的时候到底是哪个java.exe被用来执行呢?
    这个就跟你电脑高级选项的环境变量有关系了。
    总path路径=系统path+用户path 系统path路径优先.
    一般系统path=C:\WINDOWS\system32;C:\WINDOWS......
    所以被使用的java.exe在总path路径找(系统的优先)
    因此一般找到的都是c盘中的java.exe,使用的一般也会是c盘中的JRE这里所说到的包装器是这个意思:javac.exe java.exe jar.exe这些看上去是执行文件,但其实他们都是用java编辑出来的类文件。那么你可能又会问:类文件不都是用.class结尾的文件吗。的确,.class结尾的文件才是类文件,但是如果我们要使用java编译器也就是javac的时候,就要先把javac.class这个类文件送到JRE那里运行后才能使用。
    这就要输入比较长一串路径 java -classpath d:j2sdk1.4.0\lib\
    tools.jar com.sun.tools.javac.Main。 这其实跟输入:javac是一样的结果所以我们在命令行输入 javac 其实就是执行了 javac.exe这个包装器包装器的作用:找到JRE和Tools.jar。说了这么多感觉,还是没说清楚,总结一下:
    实也就是哪一个你要想知道是哪一个版本的JDK被执行,其版本的JRE被执行。
    而哪一个JRE被执行又跟哪一个java.exe被执行有关系。哪一个java.exe被执行又跟环境变量path路径有关。根据这个逻辑关系 自己想想
      

  11.   

    我按照上面的方法,尝试过,当然我输入的是安装的JDK版本名字,java -version还是显示1.4.2这个版本,我用的RHEL5.5,安装的JDK是jdk-6u24-linux-i586.bin,不知道是什么原因