一台机器多个版本的JDK共存

来源:互联网 发布:显卡驱动优化 编辑:程序博客网 时间:2024/06/11 17:13

我的机器上最始安装的是jdk1.6,后来因工作需要又安装了jdk1.4。但是,量我并未更改,是指向jdk1.6的路径的。

可是,在cmd窗口 java -version 却得到是1.4.2

查询环量:
1.
我的电脑->属性->->
2.
统环(HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SessionManager/Environment)
 
当前用户环(HKEY_CURRENT_USER/Environment)

2
置完全是一,都是指向1.6

了搞清楚问题的原因,通过查询料,原来是这样的:

JDK
在安装的程当中将在注册表会生成如下3目:
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Development Kit
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment

JDK安装程序将会把java.exejavaw.exejavareg.exe3个可行文件拷 %SystemRoot%/system32下,由于%SystemRoot%/system32被操作系缺省的最高PATH搜索 路径,因此可保在命令行任何目下可运行java.exe来启JVM

查询HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment得知CurrentVersion=1.4
于是我手将它修改1.6后,然后运行java -version得到以下果:

Registry key 'Software/JavaSoft/Java RuntimeEnvironment/
has value '1.6', but '1.4' is required.
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment.


所以,不能简单的修改注册表的CurrentVersion来达到更改运行的JRE。若人的修改CurrentVersion,会使得不同版本的java.exe与己版本不符的java.dll jvm.dll,将引起料的后果!

一般地,当在系中装了两套或多套版本的Java2 SDK,后面安装的Java2 SDK会将自己java.exejavaw.exe%SystemRoot%/system32下,从而覆盖先前版本的java.exe javaw.exe,并且在注册表中改写CurrentVersion后安装的版本。所以建在安装Java2 SDK前,先卸以前安装的版本。

原创粉丝点击