通过查看 /usr/lib/jvm 下子目录名可直接识别 jdk 版本,如 java-11-openjdk-amd64 表示 openjdk 11;用 ls /usr/lib/jvm | grep -i "java\|jdk" 快速筛选,readlink -f $(which java) 确认当前生效版本。

直接看目录名就能识别大部分 JDK 版本,这是最直观、不依赖环境配置的方式。
/usr/lib/jvm 目录名自带版本信息
Linux 发行版(如 Ubuntu、Debian、CentOS、Fedora)通常将不同 JDK 安装到 /usr/lib/jvm 下,子目录命名遵循固定习惯:
- java-8-openjdk-amd64 → OpenJDK 8(64 位)
- java-11-openjdk-amd64 → OpenJDK 11
- java-17-openjdk-amd64 → OpenJDK 17
- java-21-openjdk-amd64 → OpenJDK 21
- jdk-17.0.1-oracle 或 jdk-1.8.0_381 → Oracle JDK 或自定义安装,版本号直接写在名称里
注意:后缀 -amd64、-arm64 表示架构,不影响主版本判断;-openjdk 表示开源实现,-oracle 或无后缀常指商业版。
结合 ls 和 grep 快速筛选
终端执行以下命令可快速列出含 JDK 关键字的目录:
- ls /usr/lib/jvm —— 查看全部子目录
- ls /usr/lib/jvm | grep -i "java|jdk" —— 过滤关键词,忽略大小写
- ls -ld /usr/lib/jvm/java-* —— 只显示以 java- 开头的 JDK 目录及权限信息
确认当前默认 JDK 对应的目录
目录列表只是“已安装”,不代表当前生效。要确认哪个目录被实际使用,可运行:
- readlink -f $(which java) —— 输出类似 /usr/lib/jvm/java-11-openjdk-amd64/bin/java,末尾路径即当前 JDK 所在目录
- echo $JAVA_HOME —— 若已设置环境变量,该值通常与上述路径一致或指向其父目录
- sudo update-alternatives --list java —— 列出所有注册的 Java 路径,每条都对应一个 /usr/lib/jvm/xxx 子目录
进阶:查看目录内 version 文件(少数情况适用)
部分 JDK 安装包会在根目录下提供版本标识文件:
- 进入某 JDK 目录,如 cd /usr/lib/jvm/java-17-openjdk-amd64
- 检查是否存在 release 文件:cat release 2>/dev/null | grep JAVA_VERSION(OpenJDK 9+ 标准格式)
- 或查看 jre/release(旧版 JRE 结构)
不过绝大多数情况下,目录名已足够准确,无需额外读取文件。











