我正在尝试在 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/
我该如何解决?也有人可以解释我为什么会这样吗?
这看起来像 PATH 被 sudo 覆盖。
您应该检查是否
/etc/sudoers
包含secure_path=...
设置并将您的 java 路径广告到此。小心简单的测试。要确认您的路径,您应该:
更简单的形式
sudo echo $PATH
不起作用,因为在调用PATH
之前展开。sudo