今天,在我的电脑上装上了JDK ,配置好环境变量后。发现,登录的时候,不能登录(即在登录不到几秒的时间
后又重新的回到了登录界面!)
搞得我很郁闷!
查找错误后才发现,原来,ubuntu 再启动的时候读取配置文件,并设置环境变量的顺序是这样的:
1、在登录时,操作系统定制用户环境时使用的第一个文件就是 /etc/profile ,此文件为系统
的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、在登录时操作系统使用的第二个文件是 /etc/environment ,系统在读取你自己的profile
前,设置环境文件的环境变量。
3、在登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使
用的shell信息,,该 文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户
的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.
当bash shell 被打开时,该文件被读取.
因此,查看我的配置文件后发现!原来错误就出现在这里,这是我原来的.profile配置文件
export JAVA_HOME=/usr/jdk1.6.0_21
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
因为,系统启动时会先读取/etc/profile , 然后读取 /etc/environment ,最后才是.profile 文
件。而在/etc/environment 文件中也设置有环境变量PATH ,系统读取后慧净环境变量设置
为: (如图所示)
这时,如果你在.profile 中也设置了环境变量PATH ,就会覆盖原来/etc/environment 中设置
的环境变量PATH !
所以,问题就出在了这一步!
那么解决办法就是,在设置.profile 的环境变量时,在PATH=的最前面加上 $PATH
修改后的.profile 文件如下:
export JAVA_HOME=/usr/jdk1.6.0_21
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
至此,问题完美解决!
java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory