登录时,~/bash\u配置文件中的$JAVA\u主路径来源不正确
登录到CentOS 7虚拟机后,我的$JAVA_主页始终设置为:登录时,~/bash\u配置文件中的$JAVA\u主路径来源不正确,java,linux,bash,centos,java-home,Java,Linux,Bash,Centos,Java Home,登录到CentOS 7虚拟机后,我的$JAVA_主页始终设置为: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre,这是不正确的 我的~/.bash_档案如下: # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and s
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre
,这是不正确的
我的~/.bash_档案如下:
# .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
每次打开新终端时,Sourcing.bash_配置文件似乎都能纠正这个问题,但为什么我的$JAVA_主路径在启动时默认为旧版本,而不是设置为.bash_配置文件中指定的目录
ps
,确保您处于bash
中bash-l
,看看它是否能解决您的问题JAVA_HOME=…
之前添加set-x
,以检查是否有问题- Bash-as-login shell将按顺序加载
,/etc/profile
,~/.Bash\u-profile
,~/.Bash\u-login
~/.profile
- Bash作为非登录交互shell将加载
~/.bashrc
- 使用
永久性地在系统范围内(所有用户、所有流程)为所有用户设置环境变量/etc/environment
是一个系统范围的配置文件,这意味着它被所有用户使用。但它归root所有,所以您需要是管理员用户并使用sudo对其进行修改 假设您设置/etc/environment
变量foo=“bar”
将可从所有用户会话访问。要测试变量输出,请首先对其进行源测试foo
source/etc/environment
是您自己用户的个人shell初始化脚本之一。每个用户都有一个,可以在不影响其他用户的情况下编辑其文件~/.profile
和/etc/profile
是全局初始化脚本,对于每个用户而言,它们相当于/etc/profile.d/*.sh
。全局脚本在特定于用户的脚本之前执行;主~/.profile
在退出之前执行/etc/profile
中的所有/etc/profile.d/
脚本*.sh
文件为登录时的每个用户设置变量系统范围李>/etc/environment
- 如果任何用户打开bash shell,则执行bash_概要文件中的命令。因此,除非至少打开一次bash shell,否则不会设置变量
.bash\u配置文件在登录时没有来源。检查您的登录shell。