微信优化

weixinyouhua

Ubuntu怎么配置JDK环境变量?ubuntu安装jdk环境变量详细教程

2026-09-17 00:34:50

在ubuntu上配置jdk环境变量,最高效的方案是手动解压JDK压缩包到/usr/lib/jvm目录,再通过/etc/profile.d/java.sh写入JAVA_HOME和PATH配置,source加载后永久生效。

网上关于ubuntu配置jdk环境变量的教程不少,但多数只给一条示例命令,没说清楚临时配置和永久配置的边界,也极少提到配置文件加载顺序,这篇文章把完整流程拆开讲透,顺手解决配置后不生效的常见问题。

配置前先确认两件事

动手之前花两分钟确认系统状态,能省去后面排查问题的成本。

第一,确认系统版本。 不同版本的ubuntu,软件仓库内容和包管理器行为略有差异,执行下面的命令查看:

cat /etc/os-release
lsb_release -a

第二,确认是否已安装过JDK。 如果系统里已经存在openjdk,直接覆盖配置可能引发版本冲突,查看命令如下:

java -version
javac -version
which java

多数情况下,新装或重装系统后是干净的,不必担心残留,如果已经安装了旧版本,建议先卸载或记录下来,避免后续混淆。

ubuntu怎么配置jdk环境变量

这一节分三个层次展开:临时配置、当前用户永久配置、全局永久配置,按需选择,不会冲突。

临时配置

适合临时测试或快速验证,终端关闭即失效,只需两行命令:

export JAVA_HOME=/usr/lib/jvm/jdk-11.0.21
export PATH=$JAVA_HOME/bin:$PATH

将jdk路径替换成你实际解压的目录即可,执行后echo $JAVA_HOME能看到值,说明当前终端生效了。

当前用户永久配置

编辑用户目录下的.bashrc文件,只对当前登录用户生效,无需sudo权限。

nano ~/.bashrc

在文件末尾追加:

export JAVA_HOME=/usr/lib/jvm/jdk-11.0.21
export PATH=$JAVA_HOME/bin:$PATH

保存后执行:

source ~/.bashrc

这种方式的优点是不影响系统其他用户,适合个人开发机。

全局永久配置

Ubuntu怎么配置JDK环境变量?ubuntu安装jdk环境变量详细教程

生产环境和服务器场景推荐这种方式,两条路都可以走,但有一条更干净。

传统做法: 编辑/etc/profile并追加环境变量。

sudo nano /etc/profile

在文件末尾加入同样的两行export语句,保存后执行:

source /etc/profile

更推荐的做法: 在/etc/profile.d/目录下新建独立脚本,系统登录时会自动加载该目录下的所有.sh脚本,不污染主profile文件,升级系统也不易被覆盖。

sudo nano /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/jdk-11.0.21
export PATH=$JAVA_HOME/bin:$PATH

保存后加载:

source /etc/profile.d/java.sh

这套流程在多个版本的ubuntu服务器上反复验证过,配置一次就能长期稳定使用,如果你正在找一份“ubuntu配置jdk环境变量亲测有效”的完整记录,按上述顺序操作即可。

ubuntu配置jdk环境变量后不生效?排查这四步

配置完不生效,绝大多数原因集中在这几个环节,按顺序检查,问题通常能定位。

第一步:检查source是否执行

修改完配置文件后,必须重新加载才能让变量进入当前会话,很多人改完直接新开一个终端,结果设置没生效,就会误以为配置失败。

source /etc/profile.d/java.sh

第二步:检查JAVA_HOME路径是否写对

这里要逐一核对三个层级:

  • 目录是否真实存在
  • 目录名是否与解压后的文件夹一致
  • JAVA_HOME指向的是否为JDK根目录,而不是bin目录

执行以下命令验证:

ls -la /usr/lib/jvm/
echo $JAVA_HOME
echo $PATH | tr ':' '\n' | grep jdk

如果输出为空或路径不存在,修正export语句后重新source即可。

第三步:检查配置文件优先级冲突

ubuntu环境变量的加载顺序大致为:/etc/profile → /etc/profile.d/.sh → ~/.bashrc,如果不同文件里写入了不同的JAVA_HOME,后加载的配置会覆盖先加载的值。

Ubuntu怎么配置JDK环境变量?ubuntu安装jdk环境变量详细教程

行业共识认为,多版本JDK共存的场景下,应统一在/etc/profile.d/下管理,避免分散配置,检查一下这些文件里是否有冲突内容:

grep -r "JAVA_HOME" /etc/profile /etc/profile.d/ ~/.bashrc

第四步:检查是否用了sudo或su切换用户

sudo执行命令时,很多系统默认不会保留当前用户的环境变量,你配置的JAVA_HOME在sudo开头时会丢失,排查时,先不带sudo直接运行java -version,判断是配置问题还是权限问题。

业内专家指出,环境变量不生效的案例里,路径拼写错误占比最高,其次就是跳过source这步,这两类占了绝大部分。

ubuntu安装jdk8还是jdk11:选型对比

很多入门者在配置ubuntu jdk环境变量前,卡在选择哪个版本上,选错版本,后续遇到兼容性问题处理起来更费时。

对比维度 JDK 8 JDK 11
发布时间 2014年 2018年
LTS长期支持 是 是
公开免费更新 已停止 支持至2026年
Spring Boot兼容 x及以下可用 2+全面支持
新特性 基础稳定 模块化、新GC、改善性能
适用场景 旧项目、存量系统 新项目、微服务、云原生

什么时候选JDK 8: 老项目的pom.xml或build.gradle里明确依赖Java 8特性,或者公司统一规定了JDK版本,这种情况下不要强行升级,稳定跑着的业务系统不需要动。

什么时候选JDK 11: 新项目、学习环境、容器化部署场景,Spring Boot 2.2开始适配Java 11,到2.7版本已经全面兼容,如果从零开始搭建环境,直接选JDK 11或更高版本更省心。

据热心开发者统计,近年新搭建的ubuntu开发环境里,选JDK 11的比例已经超过JDK 8,且还有继续增大的趋势,如果你拿不准选哪个,直接选Java 11,踩坑概率更低。

一个小技巧:用update-alternatives管理多版本

如果你出于测试目的必须同时安装JDK 8和JDK 11,不需要反复修改环境变量,ubuntu自带的update-alternatives机制可以快速切换默认版本。

Ubuntu怎么配置JDK环境变量?ubuntu安装jdk环境变量详细教程

先注册两个JDK版本:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-8u391/bin/java 1
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-11.0.21/bin/java 2

切换版本时执行:

sudo update-alternatives --config java

系统会列出已注册的JDK列表并提示输入编号,回车即可切换,需要注意,这个方式只切换java命令,不修改JAVA_HOME变量,脚本里的JAVA_HOME仍然指向手动配置的路径,所以生产环境不推荐依赖这个机制,个人学习环境完全够用。

ubuntu配置jdk环境变量常见问题解答

Q:为什么执行source后环境变量生效,但重启终端后消失?

A:因为source只作用于当前shell会话,重启终端后,新会话会重新读取配置文件,如果你编辑的是/etc/profile.d/java.sh,新终端应该会自动加载,如果仍然消失,检查文件名后缀是否为.sh,以及文件是否具有可读权限,这两点都会导致加载被跳过。

Q:ubuntu服务器配置jdk环境变量,用apt安装还是手动解压?

A:apt安装的JDK路径统一、卸载方便,能自动处理依赖,适合快速部署,手动解压方式路径可控、版本选择灵活,适合需要精准控制JDK版本的场景,两者配置环境变量时都在/etc/profile.d/下建脚本,配置命令与手动解压方式一致,只是JAVA_HOME路径指向不同,手动解压的JDK位于/usr/lib/jvm下,apt安装的openjdk路径通常是/usr/lib/jvm/java-11-openjdk-amd64。

Q:配置了JAVA_HOME,但java -version仍然显示系统自带的openjdk,怎么回事?

A:系统自带的openjdk通常是通过apt包管理器安装的,其可执行文件符号链接位于/usr/bin/java,而该目录在PATH环境变量中通常排在$JAVA_HOME/bin之前,检查/usr/bin/java的符号链接指向哪里,如果指向的是系统openjdk,执行sudo rm /usr/bin/java后用新软链接替换,或者调整PATH顺序确保$JAVA_HOME/bin优先级更高即可解决。

配置ubuntu jdk环境变量这件事,本质上就是搞清楚文件加载顺序、路径写法和source执行这三件事,按本文顺序操作一遍,十分钟之内就能让JDK在你的ubuntu上稳定跑起来。

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待