1. 为什么要在Linux上安装JDK/OpenJDK如果你在Linux系统上开发或运行Java应用安装JDKJava Development Kit或OpenJDK是必不可少的。JDK提供了编译、调试和运行Java程序所需的工具而OpenJDK是JDK的开源实现版本。两者在实际使用中几乎可以互换但OpenJDK通常更新更快且完全免费。我遇到过不少新手在安装时踩坑比如环境变量配置错误、版本冲突等问题。这篇文章会带你从零开始用最稳妥的方式完成安装。无论你是用CentOS、Ubuntu还是其他主流Linux发行版都能找到对应的解决方案。2. 安装前的准备工作2.1 检查现有Java版本在开始安装前先检查系统是否已经安装了Javajava -version如果显示类似openjdk version 1.8.0_352的信息说明已有Java环境。如果版本不符合需求建议先卸载旧版本。2.2 卸载旧版本Java对于基于RPM的系统如CentOS/RHELrpm -qa | grep java sudo rpm -e --nodeps [包名]对于基于Debian的系统如Ubuntudpkg --list | grep -i jdk sudo apt purge [包名]我建议彻底清理旧版本避免后续出现兼容性问题。曾经有个项目因为残留的旧版本导致类加载异常排查了整整一天。3. 使用包管理器安装OpenJDK3.1 在CentOS/RHEL上安装对于RedHat系系统最方便的是通过yum安装sudo yum install java-1.8.0-openjdk-devel如果需要其他版本比如Java 11sudo yum install java-11-openjdk-devel3.2 在Ubuntu/Debian上安装在Debian系系统上使用aptsudo apt update sudo apt install openjdk-8-jdk安装Java 11sudo apt install openjdk-11-jdk包管理器安装的最大优点是自动处理依赖关系和后续更新。我在生产环境通常首选这种方式省心省力。4. 手动安装Oracle JDK4.1 下载JDK安装包访问Oracle官网下载对应版本的JDK选择Linux x64的.tar.gz包。我建议下载到/usr/local目录sudo mkdir -p /usr/local/java cd /usr/local/java sudo wget https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz4.2 解压并配置环境解压下载的压缩包sudo tar -xzf jdk-18_linux-x64_bin.tar.gz然后编辑/etc/profile文件在末尾添加export JAVA_HOME/usr/local/java/jdk-18.0.2 export PATH$JAVA_HOME/bin:$PATH使配置生效source /etc/profile手动安装的优势是可以精确控制版本适合需要特定JDK版本的项目。我在做性能调优时经常需要对比不同JDK版本的表现。5. 多版本JDK管理5.1 使用alternatives工具Linux提供了alternatives命令来管理多个Java版本sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.8.0_351/bin/java 1 sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.8.0_351/bin/javac 1切换版本sudo update-alternatives --config java5.2 环境变量管理技巧我习惯在/etc/profile.d/下创建单独的Java环境文件sudo vi /etc/profile.d/java.sh内容如下export JAVA_8_HOME/usr/lib/jvm/java-1.8.0-openjdk export JAVA_11_HOME/usr/lib/jvm/java-11-openjdk alias java8export JAVA_HOME$JAVA_8_HOME alias java11export JAVA_HOME$JAVA_11_HOME这样只需执行java8或java11就能快速切换。6. 验证安装结果无论采用哪种安装方式最后都要验证java -version javac -version应该能看到类似这样的输出openjdk version 1.8.0_352 OpenJDK Runtime Environment (build 1.8.0_352-b08) OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)再写个简单的HelloWorld.java测试public class HelloWorld { public static void main(String[] args) { System.out.println(Hello, Java!); } }编译运行javac HelloWorld.java java HelloWorld7. 常见问题解决7.1 权限问题如果遇到权限错误可以尝试sudo chown -R $(whoami) /usr/local/java7.2 环境变量不生效确保执行了source /etc/profile或者重新登录终端。7.3 版本混乱如果java -version显示的不是你安装的版本检查PATH环境变量顺序确保JDK路径在系统路径之前。我在团队中推行标准化Java环境配置时遇到过各种奇怪的问题。后来总结出一套检查清单按步骤操作基本能解决90%的问题。