centos 7中sudo java : command not found

运行sudo java -version报错

$ sudo java -version
sudo: java:找不到命令

原因:

当使用sudo去执行一个程序时,处于安全的考虑,这个程序将在一个新的、最小化的环境中执行,诸如PATH这样的环境变量,在sudo命令下已经被重置成默认状态了。所以当一个刚初始化的PATH变量中不包含你所要运行的程序所在的目录,用sudo去执行,你就会得到"command not found"的错误提示。

查看sudo指令下的PATH变量:

$ sudo printenv PATH
/sbin:/bin:/usr/sbin:/usr/bin

解决方案:

设置sudo命令使用的PATH为当前shell的PATH(推荐):

$ sudo env PATH=$PATH java -version

或者,让子shell使用当前环境的PATH(推荐):

$ sudo PATH=$PATH sh -c "java -version"

 或者,使用visudo命令修改sudo指令对于安全PATH的配置(不推荐)

$ sudo visudo

将/ect/sudoers中的 Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

修改为 Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/YourJdkHome/bin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值