所以在 bash_config 配置文件中我有
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export JAVA_PATH=$JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
但它不是附加 PATH,而是将其设置为:
[admin@vml1wk111 ~]$ echo $PATH
$PATH:/usr/lib/jvm/java-1.8.0-openjdk/bin:/usr/local/sbin:/usr/sbin:/usr/lib/jvm/java-1.8.0-openjdk/bin:/home/admin/.local/bin:/home/admin/bin
$PATH 是 PATH 中的实际内容,而不是它应该导出的变量。
我究竟做错了什么?
我不得不做
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
每次我登录时。
答案1
这不可能。您必须PATH
在其他地方修改了您的变量,因为您的变量/usr/local/sbin
是在之后$JAVA_HOME/bin
而不是之前。之后是另一个/usr/lib/jvm/java-1.8.0-openjdk/bin
带有附加的/home/admin/.local/bin:/home/admin/bin
.
并且启动时没有bash_config
读取配置文件。
检查你的~/.bash_profile
,~/.bashrc
和~/.profile
.
编辑:
要调试,请注释中的所有行/etc/profile.d/java.sh
(让每行以 开头#
)或将其移动到其他位置作为备份,并检查目录中是否有任何其他文件/etc/profile.d
。还要检查整个系统/etc/profile
。
我仍然不明白为什么/bash_profile
应该阅读(如果它不是由您在这些文件之一中获取的)。如果它被读取,则$HOME/.local/bin:$HOME/bin
扩展到/home/admin/.local/bin:/home/admin/bin
(损坏的末尾部分PATH
)并且PATH
已经损坏并设置为
$PATH:\
/usr/lib/jvm/java-1.8.0-openjdk/bin:\
/usr/local/sbin:\
/usr/sbin:\
/usr/lib/jvm/java-1.8.0-openjdk/bin