离线安装JDK核心是提前准备、路径精准、变量可靠:需先确认系统发行版和CPU架构,下载匹配的.tar.gz包并校验SHA256,解压至/usr/lib/jvm或/opt/java,配置/etc/profile.d/java.sh全局环境变量,最后三重验证java/javac版本、JAVA_HOME路径及构建工具兼容性。

离线环境下安装JDK,核心是提前准备、路径精准、变量可靠——没有网络,就不能依赖包管理器自动拉取依赖或校验签名,所有步骤必须本地可控。
离线安装前必须完成的三件事
-
确认目标服务器的系统信息:运行
cat /etc/os-release和uname -m,明确发行版(如 CentOS 7、Ubuntu 22.04)和 CPU 架构(x86_64 或 aarch64),避免下载错版本导致Exec format error。 -
在有网机器上选好 JDK 发行版并下载完整包:推荐 Eclipse Temurin(原 Adoptium)或 Azul Zulu,它们免费可商用、更新及时、无 Oracle 许可限制。例如:
jdk-17.0.2+8_linux-aarch64_bin.tar.gz(ARM 服务器)jdk-21.0.3+7_linux-x64_bin.tar.gz(Intel/AMD 服务器)
✅ 下载.tar.gz格式(非.rpm或.deb),因离线时无法处理包依赖链。 -
把 JDK 包 + 验证用的
sha256sum文件一并拷贝到目标服务器:Temurin 官网提供校验值,可用sha256sum -c jdk-*.tar.gz.sha256验证完整性,防止传输损坏。
解压与部署位置建议
- 推荐解压到
/usr/lib/jvm/(系统级标准路径)或/opt/java/(更清晰隔离):sudo mkdir -p /usr/lib/jvm sudo tar -xzf jdk-17.0.2+8_linux-x64_bin.tar.gz -C /usr/lib/jvm/
- 解压后目录名即为 JDK 根目录(如
/usr/lib/jvm/jdk-17.0.2+8),JAVA_HOME 必须指向这个目录,不能加/bin或/jre。 - 可创建软链接简化后续维护:
sudo ln -sf /usr/lib/jvm/jdk-17.0.2+8 /usr/lib/jvm/default-jdk export JAVA_HOME=/usr/lib/jvm/default-jdk
环境变量配置(全局生效、重启不丢)
不要改 /etc/profile(易被其他脚本覆盖),改用 /etc/profile.d/java.sh:
sudo tee /etc/profile.d/java.sh << 'EOF' export JAVA_HOME=/usr/lib/jvm/jdk-17.0.2+8 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib EOF sudo chmod 644 /etc/profile.d/java.sh
✅ 这种方式:
- 所有新登录用户自动加载
- 不受 shell 类型影响(bash/zsh 都支持)
- 重启终端或新会话立即生效,无需
source
验证是否真正装好
光看 java -version 不够,要分三步确认:
-
java -version和javac -version输出一致且无报错 -
echo $JAVA_HOME返回完整路径,且该路径下存在bin/java和lib/modules(JDK 9+)或lib/rt.jar(JDK 8) - 其他工具能识别:运行
mvn -v或gradle -v,确认它们读取的JAVA_HOME正确,不报 “invalid JVM” 错误
不复杂但容易忽略。


















