今天,在我的电脑上装上了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
至此,问题完美解决。
http://blog.163.com/wangan11@126/blog/static/173152453201092132341532/
另外一篇
在Ubuntu操作系统下配置JDK环境变量导致系统无法登录这个问题两步搞定 第一、找到 /etc/environment文件,这个文件是系统默认加载的环境变量文件;同于在我们配置的jdk环境变量后,jdk环境变量会霸占/etc/environment下的环境变量,当你登录系统时无法进行,当用户验证通过学后,系统老是重新启动,无法登录。其实我们知道在ubuntu下配置JDK的全局环境变量是在/etc/profile文件中配置 ,所以我们只要把environment文件中的系统默认的环境变量拷贝到profile文件中的PATH中就行了啦。 第二、配置/etc/profile文件内容如下:
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ -d /etc/profile.d ]; then for i in /etc/profile.d/*.sh; do if [ -r $i ]; then . $i fi done unset i fi
if [ "$PS1" ]; then if [ "$BASH" ]; then PS1='/u@/h:/w/$ ' if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi JAVA_HOME=/opt/java/jdk1.6.0_22 export JAVA_HOME PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME/bin export PATH CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jir/lib export CLASSPATH
umask 022 哈哈 这样就搞定,简单吧 |
http://mcncc.com/simple/?t17981.html