我在sun的网站上下载了jdk1.5,安装后可以使用,当时也没看java和javac的版本号,但用了一段时间后,编译通过的程序却执行不了,用java -version和javac -version查看其版本,前者是1.5,而后者是1.6,我不知道这到底是什么原因,怎么解决?卸载重装吗?

解决方案 »

  1.   

    javac -version这句是在那运行的?

      

  2.   

    你的机器上有多套JRE。抄自《Java深度历险》
    在计算机里存在多套JRE的情况下,那么谁来决定用哪一套JRE呢?这个重大责任就落在java.exe(javac.exe)身上。当我们在命令行输入:
    Java(javac) XXX
    的时候,java.exe(javac.exe)的工作就是找到合适的JRE来执行类文件。java.exe(javac.exe)依照如下逻辑来寻找JRE:自己的目录下有没有JRE目录(这么说并不是非常精确,原因请详见JDK源代码,在此不作特别说明); 
    父目录下的JRE子目录; 
    查询Windows Registry (HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment); 
    所以,java.exe(javac.exe)的执行结果和“您计算机里面哪一个java.exe被执行,然后哪一套JRE被拿来执行java应用程序”有莫大的关系。可用参数-verbose来大致查看调用的JRE的路径。
      

  3.   

    修改你的环境变量里面的path属性,把JDk相关的路径统一到你期望的版本
      

  4.   

    你是不是linux?
    如果是linux你可能还要改一下/usr/bin/java这个软链接
      

  5.   

    我的path路径是改过的,而且一直在用,就是突然成了这样子,path的路径也是统一的,是一个jdk所安装的,这就有点郁闷了,呵呵
      

  6.   

    楼主应该是在Windows上安装的jdk1.5的exe文件吧,会在注册表里生成JAVA_HOME。
    解决方法:
    1.修改环境变量与此一致。

    2.修改注册表与环境变量一致。