Linux系统下环境变量的顺序问题,以安装jdk为例
问题1:安装jdk8,配置环境变量到配置文件中,执行source,如果在终端执行export JAVA_HOME=/path/to/another/jdk,此时JAVA_HOME的值会变成新的,此时再source配置文件,JAVA_HOME的值是否变回去?
(覆盖机制)
问题2:配置环境变量后,我们会定义PATH=${JAVA_HOME}/bin,后面通过export修改JAVA_HOME的值后,是否会同步修改PATH的值?
问题1:此时再source配置文件,JAVA_HOME的值会变回去。即最后一次执行会覆盖之前的。
问题2:PATH的值已经生成,仅export修改JAVA_HOME后,不会同步修改PATH的值。如果是在配置文件,source配置文件,会依次export JAVA_HOME和PATH,那么PATH就同步修改了。
其实,你可以安装一个测试环境进行测试和验证。使用虚拟机,Windows用户可使用WSL。
问题1:执行source命令会重新加载配置文件中的环境变量,因此JAVA_HOME的值会变回原来的值,而不是新的值。
问题2:当修改JAVA_HOME的值时,PATH的值不会同步修改。如果想要同步修改,需要重新定义PATH的值,例如:
export JAVA_HOME=/path/to/another/jdk
export PATH=${JAVA_HOME}/bin:$PATH
输完后点击确定即可。接下来添加到系统变量path中:
选中Path然后点击编辑,进入以下界面:
点击新建,然后填入%JAVA_HOME%\bin就行了,点击确定就配置好了。