关于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(可选)