现在的位置: 首页 > 综合 > 正文

java与javac版本不一致问题

2018年05月28日 ⁄ 综合 ⁄ 共 1065字 ⁄ 字号 评论关闭

如果安装多个版本的jdk的话,比如:jdk1.5.0_09、jdk1.5.0_17和jdk1.6.0_12,
会发现java -version和javac -version的结果不一致。
尽管在环境变量中设置了java_home和path及classpath,如下:
C:\Users\can_do>set path
C:\Java\jdk1.5.0_17\bin;PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

C:\Users\can_do>set classpath
classpath=.;C:\Java\jdk1.5.0_17\lib\dt.jar;C:\Java\jdk1.5.0_17\lib\tools.jar;C:\Java\jdk1.5.0_17\lib;

但是检查java -version时发现,其版本显示的是jdk1.6.0_12的版本,如下:
*******begin*********
C:\Users\can_do>set java_home
java_home=C:\Java\jdk1.5.0_17

C:\Users\can_do>java -version
java version "1.6.0_12"
Java(TM) SE Runtime Environment (build 1.6.0_12-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)

C:\Users\can_do>javac -version
javac 1.5.0_17
*******end*********

经分析检查,是因为高版本中的jre的dll文件被调用了,如下:
C:\Java\jre1.6.0_12\bin\client\jvm.dll
*****************************
C:\Users\can_do>java -version
Error opening registry key 'Software\JavaSoft\Java Runtime Environment\1.6'
Error: could not find java.dll
Error: could not find Java SE Runtime Environment.

C:\Users\can_do>

解决方法将%JAVA_HOME%\bin加在PATH变量的头,执行java -version和javac -version,均为java
version "1.7.0"版。

抱歉!评论已关闭.