登录到我的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中指定的目录?
发布于 2017-10-11 04:14:55
每次我打开一个新的终端时,.bash_profile资源似乎都会纠正这个问题,但是为什么我的$JAVA_HOME路径在启动时默认为旧版本,而没有设置为.bash_profile中指定的目录?
您需要从当前用户中注销并再次登录,以便环境变量发生更改。
可能是有用的
在巴什:
/etc/profile、~/.bash_profile、~/.bash_login、~/.profile。~/.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_profile中的命令。因此,除非打开bash至少一次,否则不会设置变量。发布于 2017-10-11 04:11:24
ps以确保您在bash中。bash -l,看看它是否解决了您的问题。set -x之前添加JAVA_HOME=...,以检查是否有问题。发布于 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
https://stackoverflow.com/questions/46679363
复制相似问题