我对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>当我进入intellij上的项目结构时,模块使用的是语言级别11。
在我的电脑上,我刚刚下载了最新的JDK (17)?
这会导致这样的问题吗?我应该只使用与我正在工作的版本相关联的JDK吗?
我没有任何问题..。但我担心我的依赖项可能不同于我应该是using...or的依赖项,如果其他人正在使用另一个jdk,那么构建将是不同的。
发布于 2022-03-29 21:02:08
pom.xml中指定的JDK版本指定了传递给javac的源版本和目标版本。这指定了可以使用哪些系统库和语言特性。
来自IntelliJ的语言级别与此匹配。
已安装的JDK是用于编译和运行应用程序的程序(或一组程序)。
Java允许使用较新的JDK为旧版本(源/目标/发行版)编译程序。
生成的类文件(字节码)应该是相同的,不管您使用的是哪个JDK版本,只要目标/发布版本(在pom.xml/language级别中IntelliJ中指定的版本)是相同的。
此外,Java (几乎完全)向后兼容。在为旧Java版本编写代码时,它可能也适用于较新的Java版本。
https://stackoverflow.com/questions/71668611
复制相似问题