JDK版本报错
你可能遇到很多次这种情况
你可以想想,项目中pom.xml文件里的JDK版本,Maven里的JDK版本,project structure里的JDK版本,到底是什么关系
pom.xml
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.release>17</maven.compiler.release></properties>
只是一个标准规范
定义你写的代码语法和 class 文件要求的版本
告诉编译官:“我的代码是用 Java 17 写的,你必须用 17 或更高来编译”
Maven
Maven有两大作用,1是项目的依赖管理,另一个就是构建和编译管理。所以说Maven是包含javac的,这里的JDK版本就是将java文件编译为class文件,所以这里必须和pom.xml里保持一致,或者大于
structure
他也存在Javac,但是他还包括JVM的版本。在编译成class文件后,还要经过JVM才可以运行嘛,所以structure的版本也要保持一致
问题1
如果maven版本不对,但是structure和pom.xml文件里的JDK一致,那么可以运行嘛?
可以!!!
因为如果直接点击运行,他的javac是走structure里的。
但是如果你单独点击maven complie,就需要保证maven的JDK也保持一致