最快确认JRE安装状态的方法是运行java -version:若报command not found则未安装;若版本低于11(如1.8.0_302)则为旧版。

怎么确认系统里没装JRE或装的是旧版本
直接运行 java -version 最快。如果报 command not found,说明根本没装;如果输出版本号但低于 11(比如 1.8.0_302),那大概率是旧版 JRE,很多新应用跑不起来。
别信 which java 的结果——它可能指向一个 shell alias 或 wrapper 脚本,实际执行的还是老版本。真正要看的是 readlink -f $(which java),它会吐出真实二进制路径,再结合 ls -l 看归属目录,才能判断是不是你手动装的那份。
- Ubuntu/Debian 上用
apt list --installed | grep openjdk查已安装包 - RHEL/CentOS 7 用
rpm -qa | grep java,CentOS 8+ 改用dnf list installed | grep java - 看到
java-1.8.0-openjdk-headless这类名字,基本就是 JRE(没 javac),但得看版本是否够用
用包管理器装 JRE 比手动解压更稳
除非你明确要某个特定构建(比如 Azul Zulu 或 Amazon Corretto),否则优先走系统包管理器。它自动处理依赖、路径注册和更新机制,不会和系统其他 Java 工具链打架。
Ubuntu 22.04+ 默认装的是 OpenJDK 11 JRE,命令是 sudo apt install openjdk-11-jre-headless;RHEL 8+ 对应的是 sudo dnf install java-11-openjdk-headless。加 -headless 是关键——它不含 AWT/Swing 图形组件,省空间、少攻击面,服务器场景正合适。
立即学习“Java免费学习笔记(深入)”;
- 别装
openjdk-11-jre(带桌面支持),纯浪费 - 装完立刻验证:
java -version应该输出类似11.0.22的版本,且which java指向/usr/bin/java(这是包管理器注册的标准位置) - 如果之前手动解压过 JDK 到
/opt/java之类路径,记得删掉或重命名,否则PATH顺序一乱,java命令可能还是调到旧版
JAVA_HOME 怎么设才不被覆盖
JAVA_HOME 不是给 java 命令用的(它只看 PATH),而是给 Tomcat、Maven、Gradle 这些工具找 JVM 用的。设错位置或时机,它们就启动失败。
最可靠的方式是写进 /etc/profile.d/java.sh(所有用户生效),内容只有一行:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64(路径以 readlink -f $(which java) 往上推两级为准)。别写进 ~/.bashrc,root 运行服务时读不到。
- 检查路径是否存在:
ls $JAVA_HOME/bin/java必须能成功执行 - 别用
/usr/bin/java当JAVA_HOME值——那是软链接,不是 JDK 根目录 - Tomcat 启动报
Neither the JAVA_HOME nor JRE_HOME environment variable is defined,八成是JAVA_HOME没导出或路径错
systemd 服务里 JAVA_HOME 不生效?得显式指定
systemd 服务默认不读 /etc/profile.d/,所以即使全局设了 JAVA_HOME,systemctl start tomcat 还是可能找不到 JVM。
正确做法是在服务单元文件(比如 /etc/systemd/system/tomcat.service)的 [Service] 段里加一行:Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"。然后运行 sudo systemctl daemon-reload 生效。
- 别在
ExecStart里写env JAVA_HOME=... java -jar app.jar——太绕,且环境变量作用域受限 - 如果服务用的是
java命令而非绝对路径,确保PATH也正确,可在同一段加Environment="PATH=/usr/bin:/bin" - 改完务必
sudo systemctl show --property=Environment tomcat验证变量是否加载成功
JAVA_HOME 指向一个不存在的路径,或者 systemd 服务完全忽略它——这两处查日志前先盯住。










