必须同时验证java与javac命令能否正常执行并输出一致版本号,否则会出现jdk与jre错配问题;需分别执行java -version和javac -version确认命令生效,再用which java和which javac比对路径父目录是否一致。

在Ubuntu 20.04系统中确认Java开发环境是否正确配置,必须同时验证java与javac两个命令能否正常执行并输出一致版本号,否则会出现运行时用JDK17而编译时调用系统自带JRE8的错配问题。
检查java命令是否生效
打开终端,直接输入:
java -version
若看到类似openjdk version "11.0.11"或java version "17.0.1"的输出,说明java命令已识别;若提示command not found,则PATH未包含JDK的bin目录。
【关键前提】该命令必须返回非空版本字符串,且不能是Command 'java' not found这类apt建议安装提示——后者代表命令根本未注册进shell路径。
检查javac命令是否生效
在同一终端中输入:
javac -version
这一步必须独立执行,不能省略。因为javac属于JDK开发工具包,而java可能仅来自JRE,二者路径不同、依赖不同。
若输出格式为javac 17.0.1(无“openjdk”前缀也正常),说明JDK完整安装;若报错command not found,大概率是只装了JRE或PATH未包含$JAVA_HOME/bin。
比对java与javac版本一致性
第一步:执行which java,记录返回路径(如/usr/lib/jvm/java-17-openjdk-amd64/bin/java)
第二步:执行which javac,记录返回路径
第三步:对比两路径的父目录是否完全一致——例如都指向/usr/lib/jvm/java-17-openjdk-amd64
如果父目录不同,比如java指向java-11-openjdk而javac指向java-17-openjdk,说明环境变量PATH中两个JDK路径顺序混乱,【不可逆风险】会导致编译产出的class文件无法被当前java命令加载,抛出UnsupportedClassVersionError。
此时必须修正/etc/profile或~/.bashrc中export PATH=...的拼接顺序,确保同一JDK的bin目录完整前置。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











