一台机器多个版本的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.exe,javaw.exe,javareg.exe这3个可执行文件拷贝 到%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.exe和javaw.exe拷贝到%SystemRoot%/system32目录下,从而覆盖先前版本的java.exe和 javaw.exe,并且在注册表中改写CurrentVersion为后安装的版本。所以建议在安装Java2 SDK前,先卸载以前安装的版本。
- 一台机器多个版本的JDK共存
- JDK版本不兼容问题之:一台机器安装多个版本的JDK
- JDK版本不兼容问题之:一台机器安装多个版本的JDK
- JDK版本不兼容问题之:一台机器安装多个版本的JDK
- 一台电脑安装多个版本的jdk
- 一台电脑安装多个版本的jdk
- 一台电脑如何安装多个版本的JDK
- ECLIPSE支持多个JDK版本共存的设置
- ECLIPSE支持多个JDK版本共存的设置
- 同一台机器上安装多个版本的JDK,并自由切换
- eclipse支持多个jdk版本共存
- eclipse支持多个jdk版本共存
- 一台电脑安装2个不同版本的jdk
- 一台电脑里装了多个版本的JDK,java -version显示问题
- 如何在一台机器上安装两个甚至多个版本的EAS服务器?
- 2010.4.19 一台机器上的多个cognos版本
- 如何在一台机器上安装两个甚至多个版本的EAS服务器?
- 如何在一台机器上安装两个甚至多个版本的EAS服务器?
- 开源.NET 开发框架及框架API说明书(BWFW)(含并行计算及中英文分词功能)
- Effective C++补充
- 初用ubuntu10.04的一些安装步骤
- 偶然还是必然——读小蚂蚁的罗马人故事II
- OpenGlAPI大全
- 一台机器多个版本的JDK共存
- 花间一壶酒之杂文杂谈
- 经.子
- SQL2005服务无法启动
- 【转】linux挂载iso文件时消除中文乱码
- Heap Sort 及其应用
- ubuntu wine CS1.6
- 如何利用ASP.NET来访问Excel文档
- 设计函数,输入为一个字符串,里边包含中文、英文、数字等字符,编码为GBK。中文字符的编码规则假定为:双字节组成,高字节大于0x80,低字节任意。