关于安装多个版本jdk之后java -version不正确的问题

问题描述:

今天突然想写一个socket通信的小应用,分别采用BIO、NIO、AIO的方式来实现,来复习前面看的关于TCP/UDP通信的知识。于是乎在原来安装了jdk1.6的机子上重新安装了jdk1.8。结果就出现了一个很蛋疼的问题:我原来的JAVA_HOME配置根本就没有改变,但是在命令行执行 java -version出现的却是1.8版本,而javac -version出现的是正常的1.6版本。

原因分析:

参考 http://www.oschina.net/question/942785_103000?fromerr=U6XKsOdO , 主要原因是javac -version是由JAVA_HOME指定的路径中的java版本来决定的。而java -version中找的java.exe是根据系统环境变量PATH来定的,而此前我系统中的PATH变量配置为:JAVA_HOME相关的配置在最后,也就是在system32的后面。这样因为每次安装jre的时候,都会讲java.exe拷贝到system32路径中,而java -version会依次变量PATH配置,如果找到了就不在继续往后找,这就导致java -version永远是最新版本的java。

解决办法:

其实只要将系统环境变量PATH中的JAVA_HOME相关的配置移到最前即可。 其他的可以删除system32中的java.exe javaw.exe javaws.exe,删除注册表等。

时间: 2024-10-11 00:15:52

关于安装多个版本jdk之后java -version不正确的问题的相关文章

安装多个版本jdk后java -version不改变的问题解决

1.问题 比如先安装了jdk7后,再安装jdk6,java -version就是显示java1.6,即使把JAVA_HOME和path修改为java7的路径,java -version依然还是显示6. 2.解决方法 在安装jdk的时候,会自动把java.exe拷贝到c:windows/system32下,而path里配置的第一个路径就是system32,所以你执行的java -version里的java其实是system32里的java,而不是java_home里的java. 解决方法很简单,修

安装多个版本号jdk后java -version不改变的问题解决

1.问题 比方先安装了jdk7后,再安装jdk6,java -version就是显示java1.6,即使把JAVA_HOME和path改动为java7的路径,java -version依旧还是显示6. 2.解决方法 在安装jdk的时候,会自己主动把java.exe复制到c:windows/system32下.而path里配置的第一个路径就是system32.所以你运行的java -version里的java事实上是system32里的java,而不是java_home里的java. 解决方法非常

window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法

本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7. 安装jdk1.6前,执行java -version得到 C:\Users\liuxiang2>java -version java version "1.7.0_21" Java(TM) SE Runtime Environment (build 1.7.0_21-b11) Java HotSpot(TM) Client VM (build 23.21-b01, m

Windows系统上安装多个版本jdk,修改环境变量不生效

本机已经安装了jdk1.6,而比较早期的项目需要依赖jdk1.5,于是同时在本机安装了jdk1.5和jdk1.6. 安装jdk1.5前,执行 java -version 得到java version "1.6.0_38"?Java(TM) SE Runtime Environment (build 1.6.0_38-b05)?Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode) 安装完jdk1.5,并修改环境变量

windows系统下,安装多个版本的jdk,java -version

问题描述: 开始安装了 jdk8 后来装了jdk9,可以为项目配置不同的jdk,相安无事: 今天发现软件需要jdk8的环境,结果我的java -version始终是jdk9.0.1: 解决办法:使java -version是1.8..... 具体实现: 打开环境变量配置:将path配置成所需要的jdk版本即可: 比如:D:\JDK8\jdk1.8.0_144\bin; 对于JAVA_HOME:在本次测试中,无论配置成1.8或1.9或者2个以分号间隔,都可以.索性直接删掉,也可正常使用. 本以为到

电脑同时安装两个版本jdk出现的问题

在学习Java的时候,安装jdk遇到问题,总结网上的资料和自己实际解决情况,共有两个方法解决安装两个jdk冲突情况.以下就是问题描述和解决办法. 配置过程: 我的电脑-->设置-->高级电脑设置-->环境变量-->找到Path-->点击编辑在变量值一栏尾部插入jdkbin文件的目录,如果变量值尾部没有分号,则加入一个分号,如下所示: 问题描述: 安装了jdk6和jdk8,在命令行里面输入java -version以及javac -version.显示如下图: javac出现的

关于电脑安装多个版本JDK后使用时的切换

转自:https://www.cnblogs.com/yanzige/p/5377332.html 具体操作和描述如下(前两种方法都是没有成功的) 原本安装了jdk1.7,环境变量也是配置的1.7相关路径,在cmd下输入[java -version]后,显示 [ C:\Users\Administrator>java -versionjava version "1.7.0_79"Java(TM) SE Runtime Environment (build 1.7.0_79-b15

【JAVA环境配置免安装】如何由jdk的安装版本改成非安装版本

背景. 官网一般只提供windows下的exe文件,不提供zip打包文件.有些不愿意使用安装版本. 解决方法 本文以windows 7下安装jdk-6u35-windows-x64.exe为例说明 1. 下载jdk-6u35-windows-x64.exe 2. 创建一个目录命名为jdk6,名称位置随意. 3. 点击jdk-6u35-windows-x64.exe,选择路径为jdk6,继续. 4. 在选择安装路径的时候选择取消,此时免安装版本的文件已经存在于jdk6中.文件目录如下: 5. 此时

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

1. 上传jdk7 和 jdk8 包 2. 解压 [[email protected] webapps]# tar -zxvf /package/jdk-7u80-linux-x64.tar.gz 3. 配置jdk变量 vi /etc/profile export JAVA_HOME=/package/jdk1.7.0_80 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$J