linux下解决安装jdk后‘环境变量’不生效的问题

时间:2022-03-30 16:00:05

1.是否需要配置环境变量,主要看java -version 显示的版本是否为你期望的版本:

(1)不需要配置环境变量的情况

使用java -version查看,版本显示正好是你刚刚安装的版本,这一般为rpm包安装的情况

rpm安装命令:rpm -ivh /data/software/jdk-7u67-linux-x64.rpm

(2)需要配置环境变量的情况

java -version显示的版本号不对。一般是直接解压的jdk都需要配置

(3)jdk环境变量配置及生效

修改/etc/profile   (有些可能改对应用户下的隐藏文件.base_profile或.profile,如root用户,对应/root/.bash_profile,/root/.profile)

vi /etc/profile

在末尾加入

export JAVA_HOME=/usr/java/jdk1.7.0_67

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin

然后执行source /etc/profile,执行可使之马上生效。

2.配置了环境变量后'不生效'的解决方案

解决方法

1、关闭ssh连接,重新连接,再次执行java -version查看版本,有些可能是缓存,重新连接即可

2、步骤1没解决,执行步骤2,检查/etc/profile中是否书写有误,如英文单词写错了。

3、步骤2没解决,执行步骤3,看看是否有其他配置文件中配置了环境变量。

如(有些可能改对应用户下的隐藏文件.base_profile或.profile,如root用户,对应/root/.bash_profile,/root/.profile)

通过echo $PATH和echo $CLASSPATH查看,看是否有其他路径的jdk版本存在。

4、查看PATH和CLASSPATH都没有问题,但java -version还是不对怎么办?

终极绝招:分析PATH路径,

[root@localhost ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/java/jdk1.8.0_192/bin:/opt/java/jdk1.8.0_192/bin

根据PATH中的路径从前到后的顺序查找java文件;也可以使用find / -name "java"查找所有的java文件,然后看看这些java文件是否在PATH对应的目录中,

一般出问题的都在/usr/bin路径下的java文件,该文件是个链接文件,指向的真实文件并非你需要的jdk版本,可以把该文件删除,

然后重新安装jdk(rpm -ivh /data/software/jdk-7u67-linux-x64.rpm )。

如下是错误的链接文件:

[root@localhost bin]# ll /usr/bin/java

lrwxrwxrwx. 1 root root 22  8月  6 12:16 java -> /etc/alternatives/java