首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录时~/bash_profile中的$JAVA_HOME路径不正确

登录时~/bash_profile中的$JAVA_HOME路径不正确
EN

Stack Overflow用户
提问于 2017-10-11 03:36:24
回答 3查看 2.2K关注 0票数 1

登录到我的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是这样的:

代码语言:javascript
复制
#  .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中指定的目录?

EN

回答 3

Stack Overflow用户

发布于 2017-10-11 04:14:55

每次我打开一个新的终端时,.bash_profile资源似乎都会纠正这个问题,但是为什么我的$JAVA_HOME路径在启动时默认为旧版本,而没有设置为.bash_profile中指定的目录?

您需要从当前用户中注销并再次登录,以便环境变量发生更改。

可能是有用的

在巴什:

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

环境:

  • 使用/etc/environment为所有用户永久设置环境变量(所有用户、所有进程)。 /etc/environment是一个系统范围的配置文件,这意味着它被所有用户使用.尽管它是根用户拥有的,所以您需要成为管理用户,并使用sudo来修改它。 假设如果设置了foo="bar"变量,那么foo将可以从所有用户会话中访问。要首先测试变量输出源,请执行以下操作 source /etc/environment
  • ~/.profile是您自己用户的个人shell初始化脚本之一。每个用户都有一个,可以在不影响其他用户的情况下编辑他们的文件。
  • /etc/profile/etc/profile.d/*.sh是对每个用户等效于~/.profile的全局初始化脚本。但是,全局脚本在特定于用户的脚本之前执行;主/etc/profile在退出之前执行/etc/profile.d/中的所有*.sh脚本。

还请注意,

  • /etc/environment文件为登录时的每个用户设置可变系统宽度。
  • 如果任何用户打开bash,则执行bash_profile中的命令。因此,除非打开bash至少一次,否则不会设置变量。
票数 1
EN

Stack Overflow用户

发布于 2017-10-11 04:11:24

  1. 在交互式shell中运行ps以确保您在bash中。
  2. 登录后尝试bash -l,看看它是否解决了您的问题。
  3. set -x之前添加JAVA_HOME=...,以检查是否有问题。
票数 0
EN

Stack Overflow用户

发布于 2022-02-07 20:39:51

它为我工作!

在我的例子中,折叠导致了错误:

export JAVA_HOME = /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

错误是在=之前和之后都有空间。在删除这些空格后,错误消失了。

因此,正确的命令如下:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46679363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档