首先要明白JDK和JRE是什么,详情:
JDK主要是程序员用,用来开发java程序。
JRE主要是使用者用,用来运行java程序。
javac
是 Java 编译器。
java
是 Java 运行时环境。为了避免不必要的兼容性问题,最好是保持 JDK 和 JRE 的版本一致。
一、检查 JDK和JRE版本
快捷键win+r打开命令行
输入以下代码检查JDK版本
java -version
输入以下代码检查JRE版本
javac -version
经检查,JDK和JRE版本不一致:

JDK17,JRE1.8
二、关于JDK版本号
jdk1.8是jdk8.0吗?
是的,JDK1.8和JDK8.0是同一个版本的Java Development Kit。在Java SE 8中,JDK版本被命名为1.8,因此JDK1.8和JDK8.0是同一个版本的JDK。
一个电脑可以有多个jdk吗?
是的,一个电脑可以安装和同时使用多个不同版本的JDK。每个JDK都会安装在不同的目录中,它们之间是独立的,互不影响。你可以通过设置环境变量来选择使用哪个JDK。
在安装多个JDK时,需要确保它们与你的应用程序兼容,并且应该将相应的JDK路径添加到系统的PATH环境变量中,以便在命令行中访问不同版本的Java和其他开发工具。在编译和运行Java应用程序时,你需要明确指定要使用哪个版本的JDK。
三、关于JRE版本号
因为 JDK 包括了 JRE,所以,如果你安装了 JDK 8,那么你的 javac 版本号通常会是 1.8.x,而对应的 Java 运行时环境版本号也会是 1.8.x。这里的 "1.8.x" 表示主要版本号是 8,而 "x" 则表示次要版本号和更新版本号。
四、(以本图为例)解决版本不一致的方法

JDK17,JRE1.8
3个方法,如果你的JDK比JRE版本高(如上图),那么要么降低JDK(javac),要么增高JRE(java),3个方法如下。反之则增高JDK、降低JRE。
-
降低Java编译器的版本:
如果你希望生成的类文件与你当前的Java运行时环境兼容,你可以考虑使用与你的运行时环境版本相匹配的Java编译器。在你的情况下,你可以考虑使用 Java 8 版本的编译器来生成类文件。1. 打开命令行界面(如 Windows 的命令提示符或 PowerShell,或者类 Unix 系统的终端)。
2. 使用 javac 命令编译 Java 源代码时,使用 "-source" 和 "-target" 选项来指定源代码和目标的 Java 版本。例如,如果你希望将源代码编译为 Java 8 兼容的类文件,可以使用以下命令:
javac -source 1.8 -target 1.8 YourFile.java
这将确保编译器将源代码编译为与 Java 8 兼容的类文件。
3. 如果你希望降低编译器的版本,只需将 "-source" 和 "-target" 选项的参数值设置为你希望的较低的 Java 版本号即可。例如,如果你希望将源代码编译为 Java 7 兼容的类文件,可以使用以下命令:
javac -source 1.7 -target 1.7 YourFile.java
通过这些步骤可以降低 Java 编译器的版本,以生成与较旧版本 JRE 兼容的类文件。
-
升级Java运行时环境的版本:
另一种方法是升级你的Java运行时环境,使其能够识别更高版本的类文件。你可以安装一个支持较高版本类文件的Java运行时环境,比如 Java 17。1. 下载新版本的 Java 运行时环境(JRE):从Oracle安装的新版本的 JRE,确保下载的是适用于你操作系统的版本。
2. 运行安装程序:下载完成后,运行 JRE 安装程序。
3. 验证安装:安装完成后,可以在命令行中输入 `java -version` 命令来验证新版本的 JRE 是否成功安装。如果安装成功,命令行会显示新版本的 JRE 信息。
4. 更新系统环境变量(可选):更新系统的环境变量。通常更新 PATH 环境变量,以便系统能够找到新安装的 JRE。
-
使用交叉编译选项:
你也可以在较新版本的编译器中使用
-target
选项来生成与较旧版本Java运行时环境兼容的类文件。例如,你可以在使用 Java 17 编译器时,指定-target 1.8
选项来生成与 Java 8 兼容的类文件。
五、具体操作
如上图,我的版本JDK比JRE版本高,我选择第二个方法:升级Java运行时环境的版本,更新系统的环境变量和更新 PATH 环境变量。
更改前:

JDK17,JRE1.8
更改后: 版本统一