当改变了jdk版本时,在编译Java时,会遇到Unsupported major.minor version错误。
错误信息如下 :
Unsupported major.minor version 52.0 (我在jdk1.7 升级1.8切换时就遇到了这个错误)
Unsupported major.minor version 51.0
Unsupported major.minor version 50.0
Unsupported major.minor version 49.0 (我在jdk1.4 和1.5切换时就遇到了这个错误)
Unsupported major.minor version 48.0
类似错误均属于Java版本问题,即JDK版本过低,只要选择相对应的JDK版本编译即可。
48,49,50是Java编译器内部的版本号:
Unsupported major.minor version 50.0 对应于 JDK1.6(JRE1.6)
Unsupported major.minor version 49.0 对应于 JDK1.5(JRE1.5)
Unsupported major.minor version 48.0 对应于 JDK1.4(JRE1.4)
编译的时候在 pom.xml 文件中指定了编译的版本1.8,但是在运行的时候在 Eclipse 里面运行的时候用的是默认版本 1.7(跟编译时版本不一致,比编译版本要低)。
编译 pom.xml 文件 jdk 设置:
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.2version>
<configuration>
<source>1.8source>
<target>1.8target>
<encoding>${project.build.sourceEncoding}encoding>
configuration>
plugin>
运行时设置 jetty:run:
maven运行设置(默认情况下 JRE 是默认值,需要我们手动去修改它):
从上面可以看出来,我在使用 maven 打包的时候使用的是 jdk1.8,运行的时候却使用的是jdk1.7,所以才会报出上面的错误。
因此在进行 maven 的开发,打包,和运行的时候要注意:如果你的jdk版本跟默认的版本不一致,那么你需要手动的把它们的 jdk 版本统一起来,否则就会遇到很多编译上的问题。
修改的地方:
扩展:
大部分情况下我们都不需要修改 Run Configurations… 这个参数,那是因为大部分情况下我们开发时 JDK 版本、运行时的JDK版本、还有我们开发环境的默认 JDK 版本都是一致的。