我正在尝试在 xubuntu 上安装 eclipse,我安装了 java sudo gdebi <java-package>.deb
,将其添加到了/etc/environment
“ PATH
JAVA_HOME”,然后重新加载了环境并重新启动了整个系统。
运行java --version
我得到了正确的输出
java 12.0.1 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
如果由超级用户调用则两者
$ sudo su
# java --version
或通过
$ java --version
但运行
$ sudo java --version
我有java: command not found
但运行
sudo echo $PATH
我有
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk-12.0.1/bin/:/snap/bin/
并且存在 java 路径:/usr/lib/jvm/jdk-12.0.1/bin/
我该如何修复它?也有人可以解释我为什么会发生这种情况吗?
答案1
这看起来 PATH 被 sudo 覆盖。
您应该检查是否/etc/sudoers
包含secure_path=...
设置并将您的 java 路径添加到此设置。
对简单的测试要保持警惕。要确认您的路径,您应该:
sudo bash -c 'echo $PATH'
更简单的形式sudo echo $PATH
不起作用,因为在调用PATH
之前已展开sudo
。