问题描述
使用sudo -u 的方式执行,java版本是1.7
使用su 切换用户,执行java的版本是1.8
两种方式打印PATH环境变量的值也是一样的
解决方案
出现上述问题的原因是使用sudo去执行命令时,使用的环境变量实际是/etc/sudoers 文件中定义的secure_path
这个环境变量下的java版本是1.7的,所以导致sudo执行时,一直是java7的版本
找到问题后就好解决了,可以将/bin目录下的java软连接改成java8的版本,也可以修改sudoers文件,将java8的bin目录加在前面
由于担心修改了/bin目录下的java软连接会有其他影响,我直接在sudoers文件的secure_path前面加了java8的bin目录,注意这里要加在最前面,否则不会生效。
修改后用sudo方式执行java命令就是java8的版本了