关于windows和linux系统更换JDK版本后,修改环境变量也无法生效的原因和解决办法

今天遇到了一个问题:

 我linux系统之前安装JDK12,今天将其改成了JDK1.8,并修改了环境变量,但是通过java -version命令显示的依旧是JDK12的版本。

 这是因为,当使用安装版本的JDK程序时(一般是1.7版本以上),在安装结束后安装程序会自动将java.exe、javaw.exe、javaws.exe三个可执行文件复制到C:\Windows\System32目录,这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级,故此直接更改JAVA_HOME会无效。

 windows解决方法:

  删除C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件

  删除环境变量Path中C:\ProgramData\Oracle\Java\javapath的配置

  原文链接:https://blog.csdn.net/qq_26369317/article/details/80922425

 linux解决方法:

 1 1、执行which java和which javac查询java的执行路径,分别显示:
 2 
 3 /usr/bin/java
 4 
 5 /usr/local/jdk1.7.0_80/bin/javac
 6 
 7 2、然后把新的java执行路径ln -s 到新的jdk 下的 java 和 javac 上,如下
 8 
 9 rm -rf /usr/bin/java
10 
11 rm -rf /usr/bin/javac(可选)
12 
13 ln -s $JAVA_HOME/bin/java /usr/bin/java
14 
15 ln -s $JAVA_HOME/bin/javac /usr/bin/javac(可选)

 

posted @ 2019-09-24 14:16  迷人的二哈  阅读(1203)  评论(0编辑  收藏  举报