`

JAVA安装多个JDK版本的问题

阅读更多

我的机器上最开始安装的是 jdk1.6 ,后来因为工作需要又安装了 jdk1.4 。但是,环境变量我并未更改,还是指向 jdk1.6 的路径的。可是,在 cmd 窗口输入 java -version 却得到是 1.4.2
查询环境变量:

1. 我的电脑 -> 属性 -> 高级 -> 环境变量

2. 系统环境变量 (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\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 Runtime Environment\
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 的体验:

1 、安装 JDK1.5 以上版本:这可以保证任何版本的 ECLIPSE 都可以安装(否则如果安装 JDK 1.3 ECLIPSE 为高版本的会提示 JDK 版本低,安装不了;有的如果先安装了高版本的 JDK ,但一段时间后卸载了高版本的 JDK ,那么电脑上只有低版本的 JDK 和高版本的 ECLIPSE ,则运行 ECLIPSE 时只会看到起动界面,而后消失)。

2 、安装 ECLIPSE ,在安装了高版本的 JDK 后,一般 ECLIPSE 安装没有问题

3 、视情况而定,看你要运行的程序是哪个 JDK 的(有的程序是之前开发的使用的 JDK 版本可能是 1.3 的),如我现在要运行 JDK1.3 下的程序,我会

1 )从别的电脑上拷贝已安装好的 JDK1.3 文件夹

2 )将 PATH CLASSPATH 指该文件夹目录

3 ECLIPSE\WINDOW\PREFERENCES\JAVA\INSTALLED JRES\ 在里面添加并勾选 JDK1.3 ,并勾除 JDK1.5 的。

4 )将 ECLIPSE\WINDOW\PREFERENCES\JAVA\COMPILER 中的 compliance 设为 1.3 的版本即可。(如果选 1.5 可能会在命令环境编译正确,但 eclipse 报错:说 java.lang.UnsupportedClassVersionError could not found main class ),还有可能出错的就是在 eclipse 下默认包时编译正错,但使用自己创建的包时编译其中的类失败。

相关问题可以见:

http://www.blogjava.net/zhyiwww/archive/2007/01/16/94235.html

http://blog.csdn.net/ybyb14/archive/2007/05/09/1602230.aspx

分享到:
评论

相关推荐

    windows指定kettle的jdk版本(当前计算机已经安装多个jdk).docx

    在Windows操作系统中,当一台计算机上安装了多个Java Development Kit (JDK) 版本时,可能需要为特定的应用程序,如Kettle(Pentaho...通过这种方式,即使计算机上安装了多个JDK,也能确保Kettle运行在最合适的环境中。

    window JDK1.5 32位 绿色免安装版,可以安装多个JDK使用

    总结来说,JDK1.5 32位绿色免安装版为Windows用户提供了便捷的Java开发和运行环境,特别是对于需要在多个JDK版本之间切换的开发者,这是一个高效的选择。同时,理解每个组件的作用以及如何设置和管理多个JDK版本,是...

    java jdk 1.7官网免安装版本

    - **捕获多个异常**:在同一个`catch`块中可以捕获多种类型的异常。 2. **JDK免安装版本的优势** - **便捷性**:无需进行复杂的安装过程,只需解压即可使用,节省了时间。 - **移动性**:可以在多台电脑间轻松...

    Windows下安装多个版本的JDK

    在进行软件开发时,由于不同的项目可能需要不同版本的Java Development Kit (JDK),因此在Windows操作系统上安装并管理多个版本的JDK成为了一项常见需求。本文将详细介绍如何在Windows环境下安装多个版本的JDK,并...

    Windows系统用命令行一键切换多个JDK版本

    Windows系统安装了多个版本Java的JDK,可以像mac/Linux系统一样一键切换不同的版本,下载后把文件名后缀改为bat格式,如果出现乱码,把文件改为ANSI编码

    java jDK8u202 最后一个免费版本

    Java JDK 8u202 是Oracle公司发布的Java Development Kit的第8个主要版本的更新,也是该版本线上的最后一个免费公开更新。这个版本对于开发者和企业用户来说具有重要意义,因为它意味着那些尚未升级到JDK 11或其他...

    Java安装环境所需的JDK1.7

    8. **Fork/Join框架**:用于并行处理,适用于可以分解为多个子任务的问题。 安装JDK1.7的过程通常包括以下步骤: 1. 下载适合操作系统的JDK安装包,如`jdk-7u25-windows-i586.exe`,这是一个适用于32位Windows系统...

    Linux安装多个jdk版本进行切换

    本文为大家分享了Linux jdk安装多个版本切换的具体方法,供大家参考,具体内容如下 1. 上传jdk7 和 jdk8 包 2. 解压 [root@localhost webapps]# tar -zxvf /package/jdk-7u80-linux-x64.tar.gz 3. 配置jdk变量  ...

    jdk9全版本 java9 Jdk9.zip

    JDK 9是Oracle公司发布的一个重要版本,它引入了许多新特性,旨在提高性能、可移植性和安全性。下面我们将详细探讨JDK 9的一些关键知识点。 1. 模块系统(Project Jigsaw) JDK 9最大的变化之一就是引入了模块系统...

    java jdk 15 官网免安装版本

    这个版本是免安装版本,意味着用户无需经历传统安装过程,只需解压缩文件即可开始使用,简化了Java开发环境的配置。 JDK 15在Java发展历程中扮演着重要的角色,因为它引入了一些新特性、增强功能以及性能优化。以下...

    java 指定某个jdk版本方法

    通过 Java 版本管理,我们可以在同一台机器上安装多个 JDK 版本,并指定所需的 JDK 版本以运行不同的 Java 程序。 tomcat 容器中的 JDK 版本指定 在 Tomcat 容器中,我们可以通过修改 startup.bat 或 startup.sh ...

    (java jdk安装过程配置设置

    - 在同一台机器上可以安装多个不同版本的JDK,并通过调整`JAVA_HOME`环境变量来切换使用的JDK版本。 3. **自动化构建工具**: - 使用Maven、Gradle等自动化构建工具可以简化Java项目的构建流程,这些工具也依赖于...

    java环境安装,jdk1.8安装方法.zip

    1. **关闭SELinux**: 如果你的系统启用了SELinux,可能需要临时关闭它,因为某些版本的JDK安装可能与SELinux策略冲突。运行`setenforce 0`。 2. **获取JDK**: 使用`wget`命令下载Linux版本的JDK安装包,例如:`wget...

    java JDK1.8版本下载

    3. **更新PATH顺序**:如果系统中同时存在多个JDK版本,应确保最新的JDK在PATH变量的前面,防止旧版本被优先调用。 以上就是关于"java JDK1.8版本下载"的相关知识点,包括其主要特性、配置步骤以及需要注意的事项。...

    Java版本选择切换工具

    Java版本切换工具(JavaVersionChoice)是一个用于切换不同厂商和版本的Java Development Kit(JDK)的命令行工具。该工具采用Tree结构进行Java的安装和管理,允许用户通过简单的命令行交互,轻松切换所需的Java版本...

    最新Java JDK 20安装版(macos-64位)

    `或`Homebrew`等工具,可以方便地在多个Java版本之间切换。 - 了解`java_home`环境变量的设置,以确保系统使用正确的JDK版本。 6. **开发环境配置** - IDE集成:Eclipse、IntelliJ IDEA等主流IDE都支持JDK 20,...

    windows 下多个jdk版本一键切换

    windows 下多个jdk版本一键切换,只需要修改多个jdk路径即可

    JDK版本与JDBC版本的关系

    综上所述,JDK与JDBC之间的版本关系紧密相连,每个JDK版本通常都会带来相应的JDBC版本更新。随着技术的进步,JDBC也在不断地发展和完善,为Java开发者提供了更加丰富的功能和更高的性能支持。因此,在选择JDK版本时...

    windows快速切换jdk版本工具

    标题提到的“windows快速切换jdk版本工具”是一个专门解决这个问题的实用程序,它使得在多个JDK之间进行切换变得更加便捷。 这个工具的核心在于提供了一个批处理脚本(`切换jdk.bat`),它允许用户通过简单的命令行...

    JAVA 安装包,jdk17(win、linux)

    首先,我们来看"jdk-17.0.8_windows-x64_bin.exe",这是Windows平台的64位版本的JDK安装程序。这个可执行文件提供了图形化的安装向导,帮助用户轻松地在Windows系统上安装JDK。安装过程中,它会设置环境变量,如`...

Global site tag (gtag.js) - Google Analytics