完美解决 ubuntu 配置环境变量后不能登录

今天,在我的电脑上装上了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 ,系统读取后慧净环境变量设置

为: (如图所示)


完美解决 ubuntu 配置环境变量后不能登录_第1张图片


这时,如果你在.profile 中也设置了环境变量PATH ,就会覆盖原来/etc/environment 中设置

的环境变量PATH !

所以,问题就出在了这一步!

那么解决办法就是,在设置.profile 的环境变量时,在PATH=的最前面加上 $PATH

修改后的.profile 文件如下:


完美解决 ubuntu 配置环境变量后不能登录_第2张图片


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

你可能感兴趣的:(java,jdk,shell,ubuntu,bash,Path)