树莓派安装JDK必须匹配ARM32/ARM64架构和系统版本,优先使用apt安装:ARM64(Pi 4B/5、Bookworm/Bullseye)装openjdk-17-jdk;ARM32(Pi 3B/Zero)限用openjdk-11-jdk或手动部署JDK 8完整版,严禁使用x86包、default-java软链接或sdkman。

树莓派这类 ARM 架构设备安装 JDK,核心原则是:**必须匹配系统架构(ARM32/ARM64)和发行版源支持情况,优先走系统包管理器(apt),不推荐手动下载官网 x86 包或随意用 sdkman**。
确认你的系统架构和版本
先运行命令看清楚底子:
- getconf LONG_BIT —— 返回 64 表示 ARM64 系统,返回 32 表示 ARM32(如旧版 Raspbian Buster 或 32 位 Raspberry Pi OS)
- cat /etc/os-release | grep -E "(VERSION_CODENAME|PRETTY_NAME)" —— 查看是 Bookworm(12)、Bullseye(11)还是更老版本
不同组合决定你该选哪个 JDK 版本和安装方式。
ARM64 系统(树莓派 4B/5,Bookworm/Bullseye)直接装 openjdk-17-jdk
这是目前最稳、最省心的选择。Raspberry Pi OS Bookworm(2023 年起默认)和 Bullseye 均原生提供完整版 openjdk-17-jdk,含 javac、javadoc、jconsole 全套工具,且 GC 行为可控、ARM64 适配成熟。
- 执行:sudo apt update && sudo apt install openjdk-17-jdk
- 验证:java -version 和 javac -version 输出都应含 17.,且路径一致
- JAVA_HOME 应设为:/usr/lib/jvm/java-17-openjdk-arm64(注意后缀是 -arm64,不是 -amd64 或 default-java)
- 写入 ~/.bashrc:export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-arm64,再运行 source ~/.bashrc
ARM32 系统(树莓派 3B/Zero,旧版 Raspbian)谨慎用 openjdk-11-jdk 或手动部署 JDK 8
ARM32 下 openjdk-17 不被官方源支持,openjdk-8-jdk 在新版源中已移除或阉割(常缺 javac)。稳妥方案是:
- 如果系统是较新 Bullseye(ARM32),可试装:sudo apt install openjdk-11-jdk,它仍保留完整工具链
- 若需 JDK 8(如兼容旧项目),建议用社区维护的 ARM32 完整版,例如:jdk-8u391-linux-arm32-vfp-hflt.tar.gz,解压后手动配置 JAVA_HOME 和 PATH
- 别装 openjdk-8-jre-headless——它不含 javac,无法编译
避免踩坑的关键细节
很多失败不是因为不会装,而是细节错位:
- 不从 Oracle 官网下 x86_64 的 JDK 包——在 ARM 上运行会报 Exec format error
- 不依赖 /usr/lib/jvm/default-java 软链接——系统更新后易断裂,务必用真实路径
- 不跳过 javac -version 验证——有些包只装了 JRE,没装 JDK 工具,开发会卡住
- 不用 sdkman 安装 JDK 17 到树莓派桌面环境——非登录 shell 下常失效,apt 方案才真正持久


















