离线安装JDK的核心是“包对、路径对、环境对、验证对”:先用uname -m确认架构并下载匹配的tar.gz/zip包且SHA256校验通过;解压至/opt或D:\java\并验证bin/lib/conf结构完整;配置JAVA_HOME与PATH(Linux用/etc/profile.d/java.sh,Windows在系统变量中设置);最后通过which java、readlink -f $(which java)和javac -version三重验证。

离线安装 JDK 的核心是“包对、路径对、环境对、验证对”——不依赖网络,但每一步都必须手动确认。下面分四步讲清楚关键操作和常见踩坑点。
确认系统架构和下载匹配的离线包
先在目标机器上运行:
- uname -m 查看是 x86_64 还是 aarch64(ARM64)
- 别凭经验猜:aarch64 机器装 x86_64 的 JDK,解压后运行 java 就会报 Illegal instruction
- 下载时选 tar.gz 格式(Linux/macOS)或 .zip(Windows),避开 .rpm/.deb/.exe 安装器——它们需要联网或依赖系统服务
- 务必校验 SHA256:在外网下载完立刻执行 sha256sum -c sha256sum.txt --ignore-missing,输出含 OK 才可信
解压到标准路径并检查结构完整性
推荐统一解压到 /opt(Linux)或 D:\java\(Windows):
- Linux 示例:sudo tar -zxf jdk-17.0.2_linux-x64_bin.tar.gz -C /opt
- 解压后检查:ls -l /opt/jdk-17.0.2 必须直接看到 bin/、lib/、conf/ ——如果只看到一个 jre/ 子目录,说明你下错了 JRE 包,不是 JDK,得重来
- 进入 bin 目录,手动加执行权限:chmod +x java javac(Linux/macOS)
- 立即测试:/opt/jdk-17.0.2/bin/java -version 能输出完整版本号才算通过
配置 JAVA_HOME 和 PATH(避免被旧版本覆盖)
别改 ~/.bashrc 做临时调试,生产环境用全局方式更稳:
立即学习“Java免费学习笔记(深入)”;
- 新建文件:sudo nano /etc/profile.d/java.sh(Linux)
- 内容只写两行:
export JAVA_HOME=/opt/jdk-17.0.2
export PATH=$JAVA_HOME/bin:$PATH - 注意顺序:$JAVA_HOME/bin 必须放在 $PATH 最前面,否则系统可能仍调用 /usr/bin/java
- 生效命令:source /etc/profile.d/java.sh,然后新开终端或重新登录
- Windows 用户:在【系统属性 → 高级 → 环境变量】里新建 JAVA_HOME(值为 D:\java\jdk-17.0.2),再编辑 Path,新增一行:%JAVA_HOME%\bin
三重验证确保真正生效
光跑 java -version 不够,容易被缓存或 alias 干扰:
- which java:必须输出 /opt/jdk-17.0.2/bin/java(Linux)或 D:\java\jdk-17.0.2\bin\java.exe(Windows)
- readlink -f $(which java)(Linux):确认软链接最终指向你解压的 bin/java
- /opt/jdk-17.0.2/bin/javac -version:验证编译器也正常,避免 CLASSPATH 或 lib 缺失问题
- 如果项目用 Maven/Gradle,记得后续还要同步离线仓库、禁用远程镜像,否则构建仍会失败


















