2025最新在Ubuntu系统中配置JDK环境变量入门指南

2025最新在Ubuntu系统中配置JDK环境变量入门指南

正文1. 🧩 JDK版本选择与下载方式Java 有两大主流发行版:

Oracle JDK:官方发行版,包含商业特性,需遵守Oracle授权协议。OpenJDK:开源实现,社区驱动,完全免费。发行版

特点

适用场景

OpenJDK

系统仓库直接安装;免费且开源

开发、教学、生产环境

Oracle JDK

官方功能最完整;需注册Oracle账号下载

需Oracle商业特性或支持

1.1 从APT仓库安装(推荐OpenJDK)Ubuntu官方仓库含有OpenJDK包,无需手动下载:

代码语言:javascript代码运行次数:0运行复制# 更新仓库索引

sudo apt update

# 安装默认OpenJDK(当前Ubuntu默认通常是OpenJDK 11 或 17)

sudo apt install -y default-jdk

# 或者指定版本

sudo apt install -y openjdk-11-jdkAPT安装会自动把Java可执行文件放到 /usr/lib/jvm/… 并配置好 update-alternatives,省去大量手动步骤。

1.2 手动下载Oracle JDK 前往 Oracle Java SE 下载页面(需Oracle账号登录)

选择 Linux x64 .tar.gz 包下载:

如 jdk-8u381-linux-x64.tar.gz或 jdk-17.0.7_linux-x64_bin.tar.gz❗ 注意:Oracle JDK的版本号和下载页面会不定期更新,请以官网实际版本为准。

2. 📥 安装JDK2.1 使用APT安装(OpenJDK)如上所示,APT 安装后,相关文件默认在:

代码语言:javascript代码运行次数:0运行复制/usr/lib/jvm/java-11-openjdk-amd64/

/usr/lib/jvm/java-11-openjdk-amd64/bin/java

...APT会自动配置 /usr/bin/java 等软连接,不需手动设置。

2.2 手动解压Oracle JDK将下载的 .tar.gz 拷贝到服务器或主机的任意目录(如 ~/Downloads)。

创建系统级JVM存放目录(需sudo):

代码语言:javascript代码运行次数:0运行复制sudo mkdir -p /usr/lib/jvm切换到下载目录并解压:

代码语言:javascript代码运行次数:0运行复制cd ~/Downloads

sudo tar -xvzf jdk-17.0.7_linux-x64_bin.tar.gz -C /usr/lib/jvm解压后,可在 /usr/lib/jvm/ 下看到新目录 jdk-17.0.7。

3. 📝 配置环境变量Ubuntu上常见两种方式配置环境变量:

全系统级:编辑 /etc/profile 或 /etc/environment,对所有用户生效。用户级:编辑当前用户主目录下的 ~/.bashrc 或 ~/.profile。3.1 全系统级配置(推荐)打开 /etc/profile(或者 /etc/environment,两者任选之一):

代码语言:javascript代码运行次数:0运行复制sudo vim /etc/profile跳转到底部,按 i 进入插入模式,添加:

代码语言:javascript代码运行次数:0运行复制# —— Java 环境变量 ——

export JAVA_HOME=/usr/lib/jvm/jdk-17.0.7

export PATH=$JAVA_HOME/bin:$PATHJAVA_HOME:指向JDK根目录PATH:把 JAVA_HOME/bin 添加到系统执行路径保存并退出:Esc → :wq → Enter。

立即生效:

代码语言:javascript代码运行次数:0运行复制source /etc/profile3.2 用户级配置编辑 ~/.bashrc(若使用非bash,请改为对应shell配置文件):

代码语言:javascript代码运行次数:0运行复制vim ~/.bashrc在末尾添加同样的两行 export,保存退出,再执行:

代码语言:javascript代码运行次数:0运行复制source ~/.bashrc4. 🔄 管理多版本Java:update-alternatives若系统中同时安装了多个Java版本,可通过 update-alternatives 切换:

添加新版本到 alternatives(如果APT已安装,系统通常已自动添加):

代码语言:javascript代码运行次数:0运行复制sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17.0.7/bin/java 2

sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17.0.7/bin/javac 2列出当前所有可选项:

代码语言:javascript代码运行次数:0运行复制sudo update-alternatives --config java按提示输入序号,回车即可切换。

重复 --config javac 以切换编译器。

5. ✅ 验证安装与运行示例5.1 检查版本代码语言:javascript代码运行次数:0运行复制java -version

# 输出示例:

# openjdk version "17.0.7" 2025-04-15

# 或

# java version "1.8.0_381"

javac -version5.2 编写HelloWorld测试新建目录与文件:

代码语言:javascript代码运行次数:0运行复制mkdir ~/java-test && cd ~/java-test

vim HelloWorld.java在文件中输入:

代码语言:javascript代码运行次数:0运行复制public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello, Ubuntu Java!");

}

}编译并运行:

代码语言:javascript代码运行次数:0运行复制javac HelloWorld.java

java HelloWorld

# 应输出:Hello, Ubuntu Java!6. 🛠️ 常见问题及解决方案问题描述

排查思路

解决办法

java: command not found

PATH未包含Java路径

确认 echo $PATH 是否含 $JAVA_HOME/bin

Permission denied

操作系统权限不足

命令前加 sudo 或修正文件权限 chown/chmod

环境变量配置后未生效

未 source 或新终端未重新登录

执行 source ~/.bashrc 或重启终端

切换Java版本无效

update-alternatives 配置不完整

重新执行 --install,或检查 /etc/alternatives

系统默认Java版本与手动安装版本冲突

APT安装与手动安装路径不同

统一使用 update-alternatives 进行管理

7. ❓ 常见QA Q:我能把环境变量写到 /etc/environment 吗?

A:可以,但 /etc/environment 不支持shell变量扩展(如$PATH),需写成绝对路径。推荐使用 /etc/profile。

Q:为什么要设置 JAVA_HOME?

A:很多Java工具(如Maven、Tomcat)会读取此变量来定位JDK位置。

Q:Ubuntu 20.04 自带的是哪个版本的OpenJDK?

A:一般是 OpenJDK 11,使用 apt show openjdk-11-jdk 可查看详情。

Q:如何删除手动安装的JDK?

A:直接 sudo rm -rf /usr/lib/jvm/jdk-xxx,并在 /etc/profile(或相关配置)中移除对应 export。

8. 🏁 总结本文全面覆盖了在Ubuntu系统上安装并配置JDK环境变量的多种方法,包括:

APT仓库快速安装OpenJDK手动下载并解压Oracle JDK全局与用户级环境变量配置update-alternatives多版本管理环境验证与示例运行常见问题诊断与解决掌握以上步骤后,您即可在Ubuntu上顺利开展Java开发。祝您编码愉快,早日成为Java高手!🎉

温馨提示配置好JDK后,您就进入了Java的世界。不断实践和学习,遇到问题不要气馁,记得利用网络资源,如官方文档、社区论坛等,它们将是您学习过程中宝贵的帮助。祝您学习愉快!

👉 更多信息:有任何疑问或者需要进一步探讨的内容,欢迎点击下方文末名片获取更多信息。我是猫头虎博主,期待与您的交流! 🦉💬

🚀 技术栈推荐:

GoLang, Git, Docker, Kubernetes, CI/CD, Testing, SQL/NoSQL, gRPC, Cloud, Prometheus, ELK Stack

💡 联系与版权声明:

📩 联系方式:

公众号: 猫头虎技术团队 ⚠️ 版权声明:

本文为原创文章,版权归作者所有。未经许可,禁止转载。更多内容请访问猫头虎的博客首页。

点击下方名片,加入猫头虎领域社群矩阵。一起探索科技的未来,共同成长。

🔗 猫头虎社群 | 🔗 Go语言VIP专栏| 🔗 GitHub 代码仓库 | 🔗 Go生态洞察专栏

相关推荐

10 款最佳火影忍者游戏排名
365bet娱乐场网址

10 款最佳火影忍者游戏排名

📅 07-19 👁️ 2210
劳动法产假的规定
365bet官方开户

劳动法产假的规定

📅 06-29 👁️ 8668
重走丝路,再续传奇:《丝路传说》手游评测
365bet官方开户

重走丝路,再续传奇:《丝路传说》手游评测

📅 06-27 👁️ 7608