关于linux配置java环境变量问题
前言
这几天一直在学java, 所以配置环境变量是必不可少的步骤,然后我简单的研究了一下,当然也只是皮毛而已
环境变量的就近原则
我电脑下载了oracle公司的jdk(手动配置环境变量), 和直接源里面安装的 openjdk,但是我发现尽管我手动配置了 oracle jdk 的环境变量,java命令调用的还是 openjdk,而通过echo $PATH
可以看到我配置的环境变量已经生效了。后来我发现这个其实就是一个就近原则(之前有一位大佬跟我说过,没太在意),当你输入java 命令时,他首先会到 PATH环境变量中前面的目录寻找这个命令,那么 openjdk 的 java 命令路径在 /usr/bin/java
,在 $PATH 中 /usr/bin 在我手动配置的环境变量前面,所以这样肯定会先找到 openjdk 的 java 命令
解决办法:
将手动配置的环境变量放到前面,可以这样写
export PATH=$JAVA_HOME/bin:$PATH
这样就会先查找到你配置的java路径了
不同文件配置环境变量的作用范围
1. /etc/profile
这个文件作用范围是全局,在这个文件后面几行写入你配置的环境变量后,你电脑上的所有用户(包括root用户)都会调用到你配置的环境变量。不过这有个问题,就是配置完环境变量后不能立即生效(只能注销或重启),我看了一些别的文章说用 source
命令或.
直接执行,但其实这些操作只会临时的在 当前终端生效,关闭当前终端,启用新终端还是不会生效,所以还是老老实实的注销或重启吧
另外用 su
登录到root
用户这样的登录,没有加载你配置 PATH
环境变量(其余手动配置的环境变量加载了),应该使用 su -
或者 su - root
来登录
2. 家目录/.profile
这个文件作用范围是对应用户,但是也是需要注销或重启
3. 家目录/.bashrc
在这个文件的作用范围也是对应用户,但是更改后只要新启动一个终端就会生效,不需要注销或重启,其实你每次新启动终端 .bashrc
中的脚本就会执行一遍,包括你在纯文本终端登录后也会执行一遍这个脚本,所以才会生效
本文来自博客园,作者:Hello_wshuo,转载请注明原文链接:https://www.cnblogs.com/Hellowshuo/p/15622232.html