Red Hat(Linux) 系统在/etc/profile配置完JAVA_HOME后无法全局生效

本文描述了在Red Hat Linux系统中,更新JDK至1.8后,通过修改/etc/profile设置JAVA_HOME环境变量未能全局生效的问题。尽管在文件中正确设置了路径,但关闭并重新打开控制台后,JAVA_HOME仍回滚至旧版本。解决方案是在/etc/bashrc文件中添加环境变量并执行source命令,以确保全局生效。

最近涉及到linux 服务器的java需要更新,原来一直用的jdk1.6 现在需要更新到jdk1.8。按照网上程序将jdk1.8的压缩版下载并解压到原来jdk1.6的目录并覆盖之;
接下来在修改环境变量时,按照提示在 /etc/profile 文件末尾将JAVA_HOME和JRE_HOME的值都修改成现在jdk1.8的路径:

export JAVA_HOME=/usr/java/jdk1.8.0_91
export JRE_HOME=/usr/java/jdk1.8.0_91/jre
export PATH=/usr/java/jdk1.8.0_91/bin:$PATH
export CLASSPATH=./:/usr/java/jdk1.8.0_91/lib:/usr/java/jdk1.8.0_91/jre/lib

(ps:由于是用户界面的操作,所以直接修改profile的文件内容)
保存之后在控制台用命令 :
source /etc/profile
(该命令目的是使profile文件的修改生效,java_home 的环境变量修改完成),接着是用命令:
echo $JAVA_HOME
(该命令输出JAVA_HOME的环境变量值)
输出为:/usr/java/jdk1.8.0_91 说明修改完成;


问题来了,每次关掉控制台重开一个或者直接在其他地方打开控制台输入echo $JAVA_HOME 命令后发现java_home的值又回到了之前的1.6版本的路径,然而jdk1.6的目录都已经被我删除;
所以这里问题应该出在profile的修改并没有对全局JAVA_HOME变量起到作用。
折腾了一天才有了头绪,网上说到修改用户文件夹下面的bashrc文件:添加JAVA环境变量也可以实现对JAVA全局变量进行修改,因此在etc/bashrc文件下,同样操作:

export JAVA_HOME=/usr/java/jdk1.8.0_91
export JRE_HOME=/usr/java/jdk1.8.0_91/jre
export PATH=/usr/java/jdk1.8.0_91/bin:$PATH
export CLASSPATH=./:/usr/java/jdk1.8.0_91/lib:/usr/java/jdk1.8.0_91/jre/lib

保存退出,并用命令 source 执行修改;
问题解决,其他地方打开控制台也可以得到新的JAVA_HOME 变量。

ps:
在ubuntu下直接配置全局的/etc/profile就可以,我的linux是Red Hat 的GNOME内核,不知为何不可;
附上百度文库里对profile 和bashrc这两个文件的区别:
http://wenku.baidu.com/link?url=sXIdcIwCaMcklULuLh1hv-AIWIa1mLl7HqHTSZ9ZfrNSHAaOI_rMR9SiiN2y6ZSYM0cf8TSNZj_0eyPRX2xD_4rjs_LkTdzJKQptZ8475Pi
后续有其他问题希望指出。

[root@yfw ~]# cd /opt/openfire [root@yfw openfire]# yum install -y --setopt=tsflags=noscripts maven Failed to set locale, defaulting to C.UTF-8 Last metadata expiration check: 1:58:35 ago on Thu Oct 2 20:52:00 2025. Package maven-1:3.5.4-5.module_el8.0.0+39+6a9b6e22.noarch is already installed. Dependencies resolved. Nothing to do. Complete! [root@yfw openfire]# mvn -version -bash: mvn: command not found [root@yfw openfire]# cd /tmp [root@yfw tmp]# wget https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz --2025-10-02 22:51:25-- https://archive.apache.org/dist/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2 Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 8676320 (8.3M) [application/x-gzip] Saving to: 'apache-maven-3.8.6-bin.tar.gz' apache-maven-3.8.6-bin.tar 100%[======================================>] 8.27M 118KB/s in 75s 2025-10-02 22:52:41 (113 KB/s) - 'apache-maven-3.8.6-bin.tar.gz' saved [8676320/8676320] [root@yfw tmp]# mvn -version -bash: mvn: command not found [root@yfw tmp]# tar -xzf apache-maven-3.8.6-bin.tar.gz [root@yfw tmp]# mv apache-maven-3.8.6 /opt/maven [root@yfw tmp]# mvn -version -bash: mvn: command not found [root@yfw tmp]# ls /usr/lib/jvm/java-1.8.0-openjdk* /usr/lib/jvm/java-1.8.0-openjdk: ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README bin include jre lib tapset /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64: ASSEMBLY_EXCEPTION LICENSE THIRD_PARTY_README bin include jre lib tapset [root@yfw tmp]# ls -l /usr/lib/jvm/java-1.8.0-openjdk lrwxrwxrwx 1 root root 40 Oct 2 22:48 /usr/lib/jvm/java-1.8.0-openjdk -> /etc/alternatives/java_sdk_1.8.0_openjdk [root@yfw tmp]# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk [root@yfw tmp]# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk [root@yfw tmp]# echo $JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk [root@yfw tmp]# ls $JAVA_HOME/bin/java /usr/lib/jvm/java-1.8.0-openjdk/bin/java [root@yfw tmp]# $JAVA_HOME/bin/java -version openjdk version "1.8.0_312" OpenJDK Runtime Environment (build 1.8.0_312-b07) OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode) [root@yfw tmp]# cat > /etc/profile.d/maven.sh << 'EOF' > #!/bin/bash > export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk > export MAVEN_HOME=/opt/maven > export PATH=$MAVEN_HOME/bin:$PATH > EOF [root@yfw tmp]# [root@yfw tmp]# chmod +x /etc/profile.d/maven.sh [root@yfw tmp]# source /etc/profile.d/maven.sh [root@yfw tmp]# mvn -version Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) Maven home: /opt/maven Java version: 1.8.0_312, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre Default locale: en_US, platform encoding: ANSI_X3.4-1968 OS name: "linux", version: "4.18.0-348.7.1.el8_5.x86_64", arch: "amd64", family: "unix" [root@yfw tmp]#
最新发布
10-03
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值