source配置文件不生效 原创 2016年03月14日 18:43:55 3558 问题背景: 升级jdk 1.8之后,启动时报版本编译问题,查看$JAVA_HOME,$JRE_HOME

source配置文件不生效

原创  2016年03月14日 18:43:55

问题背景:

      升级jdk 1.8之后,启动时报版本编译问题,查看$JAVA_HOME,$JRE_HOME,没有问题。

     初步推断是没有source,sourec .bashrc 之后查看$JAVA_HOME,$JRE_HOME变成1.8版本,但启动时还是报错,这就奇怪了,执行java -version查看到的版本号是1.8,查看/etc/profile,.bashrc 中配置的JAVA_HOME都没有问题。

     新开个putty窗口,重新登录后,查看JAVA_HOME还是原来的配置1.7版本,新的配置没有生效,执行java -version命令看到的JDK却是1.8版本,推断可能是环境变量出了问题,

检查了/etc/profile,.bashrc没有问题,查看了用户用的shell类型(bsh,csh设置环境变量的命令不一样)都是bsh,在/etc/profile中配置如下

#JDK Environment
export JAVA_HOME=/opt/java/jdk1.8.0_74
export JRE_HOME=/opt/java/jdk1.8.0_74/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib:${JAVA_HOME}/lib/tools.jar
export PATH=${PATH}:${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:${TOMCAT_HOME}/bin

为了检查每个每个环境变量是否生效,每个都echo 了一遍,发现执行echo $PATH的时候,咦里面居然包括原来jkd 1.7路径,进一步推断出是环境变量的问题,设置的环境变量是生效了,但是登录的时候被重新覆盖了。

 问题已经明确了,需要找出JAVA_HOME变量在哪被覆盖,用命令搜居然没搜到,后来才想起环境配置文件的加载顺序...汗。。。

终于在.profile中发现JAVA_HOME的配置,找到问题所在,注释掉就OK了


原因分析:

  linux登录是读取环境配置文件的顺序如下

  1.   /etc/profile
  2. ~/.bash_profile
  3. ~/.bash_login
  4. ~/.profile

而项目组配置文件就/etc/profile,.bashrc两个,而忽视了对其他配置项的检查,前面配置的JAVA_HOME在~/.profile中覆盖了,导致了前面所描述的问题

~/.bash_profile在SUSE中这个文件命名为.bashrc


解决方案:

注释掉多余的环境变量配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值