解决ubuntu在/etc/profile中配置环境变量后失效的问题


昨天设置了tomcat+nginx+session共享:nginx +多个tomcat实现负载均衡和session共享(完整教程,图文并茂).

1、配置在系统变量里的环境变量不生效了?

因为之前是通过安装包安装的jdk,在/etc/profile中中设置的环境变量,结果今天发现jdk又没了。
解决ubuntu在/etc/profile中配置环境变量后失效的问题

2、解决一、重新加载/etc/profile

然后我重新执行

#切换成root用户
sudo su root
# 加载环境变量
source /etc/profile
#查看java版本
java -version

解决ubuntu在/etc/profile中配置环境变量后失效的问题
发现,java又出来了,但是我不能每天都重新执行一次profile吧。

3. 解决二、设置环境变量到用户下面

一通百度发现:在/etc/profile下配置的环境变量只能在终端有效,如果想让持续有效,需要把环境变量设置到你的用户设置。修改之前在/etc/profile里的配置到/home目录下的user的.bashrc里配置。

注释proile里的环境变量

vi /etc/profile

解决ubuntu在/etc/profile中配置环境变量后失效的问题

#使刚刚的配置生效
source /etc/profile

不知道为啥,我注释之后,重新使环境变量生效,但是依然还是能够显示java的版本号。为了方便测试,我开了另一个终端,发现java又没有了。我们在新的终端上配置环境变量到用户下面,重新测试一下。

打开新的终端

解决ubuntu在/etc/profile中配置环境变量后失效的问题
在用户目录下配置.bashrc

# 进入当前的用户目录下
cd ~
vi .bashrc 

添加环境变量到用户目录下

# 配置jdk的环境变量
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

解决ubuntu在/etc/profile中配置环境变量后失效的问题

3. **用户下的环境变量

使环境变量生效

# 进入当前终端所在的home目录
cd ~
# 使配置生效
source ./.bashrc
#查看java版本
java -version

我们发现配置已经生效了
解决ubuntu在/etc/profile中配置环境变量后失效的问题

4. 测试有效性

我们再开一个终端,检测一下是否会像之前/etc/profile一样失效
解决ubuntu在/etc/profile中配置环境变量后失效的问题

我们发现,新开一个终端后,root用户下面的peofile已经生效了,但是切换到ubuntu用户下,却不行。我们可以在ubuntu的home目录下做相同的配置即可。配置同上面root一样。生效也一样,所以就不举例了
解决ubuntu在/etc/profile中配置环境变量后失效的问题