下载了 JDK 17 但项目使用的是 Java 11?

Jac*_*ner 4 java jvm intellij-idea java-11

我是 Java 新手,对于它是如何工作的/我应该如何工作有点困惑。我正在使用 intellij 和我正在处理其 pom.xml 的项目有:

<java.version>11</java.version>
<maven.compiler.source>$(java.version)</maven.compiler.source>
<maven.compiler.target>$(java.version)</maven.compiler.target>
Run Code Online (Sandbox Code Playgroud)

当我进入 intellij 上的项目结构时,该模块使用的是语言级别 11。

我刚刚在我的计算机上下载了最新的 JDK (17)?

这会导致这样的工作问题吗?我应该只使用与我正在使用的版本关联的 JDK 吗?

我没有遇到任何问题...但我担心我的依赖项可能与我应该使用的依赖项不同...或者如果其他人使用另一个 jdk,构建将会有所不同。

dan*_*1st 7

中指定的 JDK 版本指定pom.xml传递给 的源版本和目标版本javac。这指定了可以使用哪些系统库和语言功能。

IntelliJ 的语言级别与此相匹配。

安装的JDK是用于编译和运行应用程序的程序(或程序集)。

Java 允许使用较新的 JDK 来编译旧版本(源/目标/发行版)的程序。

只要目标/发布版本(在 IntelliJ 中的/语言级别中指定)相同,无论您使用什么 JDK 版本,生成的类文件(字节码)都应该pom.xml相同。

此外,Java(几乎完全)向后兼容。当为旧的 Java 版本编写代码时,它可能也适用于较新的 Java 版本。