最近在使用ubuntu系统的过程中用非root用户登录,发现在安装完jdk并添加相关环境变量,java -version可以正常显示,但当我开启一个新的终端的时候,这个命令就失效了,网上查了一下原因,是需要修改当前登录用户的 .bashrc 文件中添加环境变量才可永久生效,下面来说明几种解决方案。
1、临时解决方案(非root用户)
临时解决方案就是重新加载/etc/profile文件,执行以下命令:
$ source /etc/profile
$ java -version
发现 java -version命令生效,但当重启系统或开启新终端重新执行此命令的时候失效。
2、永久解决方案(非root用户)
永久解决方案就是修改当前登录用户的 .bashrc 文件,然后重新加载该文件即可,执行以下命令:
$ vim ~/.bashrc
将 /etc/profile 文件中配置的环境变量 copy 到这个文件中,示例如下:
#jdk
export JAVA_HOME=/usr/local/programs/jdk1.8.0_231
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#zookeeper
export ZOOKEEPER_HOME=/usr/local/programs/apache-zookeeper-3.5.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
#hadoop
export HADOOP_HOME=/usr/local/programs/hadoop-2.7.3
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
放到该文件最后一行即可,然后重新加载该配置文件,执行以下命令:
$ source ~/.bashrc
然后开启新终端窗口验证问题是否解决,执行以下命令:
$ java -version
在非root用户下开启新终端窗口,环境变量失效问题到此解决。