java版本升级异常Unsupported major.minor version 52.0处理

来源:互联网 发布:招商银行java面试 编辑:程序博客网 时间:2024/06/07 20:14

一、错误现象:

当改变了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)

三、出错情况(Maven情况)

编译的时候在 pom.xml 文件中指定了编译的版本1.8,但是在运行的时候在 Eclipse 里面运行的时候用的是默认版本 1.7(跟编译时版本不一致,比编译版本要低)

编译 pom.xml 文件 jdk 设置:

<plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-compiler-plugin</artifactId>    <version>3.2</version>    <configuration>        <source>1.8</source>        <target>1.8</target>        <encoding>${project.build.sourceEncoding}</encoding>    </configuration></plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

运行时设置 jetty:run: 
maven运行设置(默认情况下 JRE 是默认值,需要我们手动去修改它):

这里写图片描述

默认JRE设置(未手动修改之前) 
这里写图片描述

手动修改 JRE 版本 
这里写图片描述

从上面可以看出来,我在使用 maven 打包的时候使用的是 jdk1.8运行的时候却使用的是jdk1.7,所以才会报出上面的错误。

因此在进行 maven 的开发,打包,和运行的时候要注意:如果你的jdk版本跟默认的版本不一致,那么你需要手动的把它们的 jdk 版本统一起来,否则就会遇到很多编译上的问题。

修改的地方:

  1. 开发时的设置:包括你的 buildPath 设置,compiler设置。

      
    

      2.pom.xml 中maven-compiler-plugin 设置.

       

     3.工程的Project Facets中的java版本,如下图:

      

 4.包括你在开发环境中运行时候的 jdk 版本设置(在 Run->Run Configurations… 里面,每一个运行的实例都可以设置 JRE 的版本),以及真实生产环境运行时的 版本设置

 如下图

这里写图片描述


5.如果用到eclipse中的maven插件编译打包web工程的话,也需要在maven插件运行目录修改jdk的版本


6.如果是Eclispe中tomcat服务器,则还需修改tomcat所引用的jdk版本



扩展: 
大部分情况下我们都不需要修改 Run Configurations… 这个参数,那是因为大部分情况下我们开发时 JDK 版本、运行时的JDK版本、还有我们开发环境的默认 JDK 版本都是一致的。

原创粉丝点击