gpt4 book ai didi

java - 登录时 ~/bash_profile 中的 $JAVA_HOME 路径来源不正确

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:51 24 4
gpt4 key购买 nike

登录我的 CentOS 7 VM 后,我的 $JAVA_HOME 始终设置为:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre,这是不正确的。

我的 ~/.bash_profile 是这样的:

#  .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64/jre
export JAVA_HOME

PYCHARM_HOME=/opt/pycharm-community-2017.2.3/
export PYCHARM_HOME

ECLIPSE_HOME=/opt/eclipse
export ECLIPSE_HOME

export SPARK_HOME=/opt/spark

PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin:$SPARK_HOME/bin:$PYCHARM_HOME/bin:$ECLIPSE_HOME

export PATH

每次我打开一个新终端时获取 .bash_profile 似乎可以解决问题,但为什么我的 $JAVA_HOME 路径在启动时默认为旧版本并且没有设置为 .bash_profile 中指定的目录?

最佳答案

Sourcing .bash_profile each time I open a new terminal appears to correct the issue, but why is my $JAVA_HOME path defaulting to an old version on startup and not being set to the directory specified in .bash_profile?

您需要注销当前用户并重新登录,以便环境变量发生变化。

可能有用

在 Bash 中:

  • Bash 作为登录 shell 将加载 /etc/profile~/.bash_profile~/.bash_login~/.profile 按顺序排列。
  • Bash 作为非登录交互式 shell 将加载 ~/.bashrc

环境:

  • 使用/etc/environment 为所有用户永久性地在系统范围内(所有用户、所有进程)设置环境变量。

    /etc/environment 是一个系统范围的配置文件,这意味着它被所有用户使用。不过它归 root 所有,所以你需要成为管理员用户并使用 sudo 来修改它。

    假设如果您设置了 foo="bar" 变量 foo 将可以从所有用户 session 访问。要测试变量输出首先源它

    来源/etc/environment

  • ~/.profile 是您自己用户的个人 shell 初始化脚本之一。每个用户都有一个,并且可以在不影响其他人的情况下编辑他们的文件。

  • /etc/profile/etc/profile.d/*.sh是全局初始化脚本,相当于~/。每个用户的配置文件。全局脚本在用户特定脚本之前执行;主 /etc/profile 在退出之前执行 /etc/profile.d/ 中的所有 *.sh 脚本。

另请注意,

  • /etc/environment 文件在登录时为每个用户设置系统范围的变量。
  • bash_profile 中的命令在 bash shell 被任何用户打开时执行。因此除非至少打开 bash shell 一次,否则不会设置变量。

关于java - 登录时 ~/bash_profile 中的 $JAVA_HOME 路径来源不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46679363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com