IDEA 编译war包部署到was8.5 java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version offset=6问题

     我使用Intellij IDEA14进行java的web工程的开发,JDK使用的是1.7.0_80,但因为项目是部署在was 8.5上且jdk必须用1.6。所以我在IDEA的Project Structure的Project Settings的Modules的Sources标签下设置Language level 设置为6,如图所示:

     

在Artifacts中设置好war包的部署设置,如下图所示:

   

   将编译生成的war包通过was控制台进行发布部署,部署是能够正常发布部署启动成功,但启动应用时却报出异常:

Error 500: java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=com/***/core/webapp/i18n/I18NTag, offset=6

从字面意思可看出是字节码版本不对,通过网上查找IDEA的编译设置,终于解决,在Settings-Build Execution,Deployment-Compiler-Java Compiler中可以在Project bytecode version 统一设置字节码的级别。也可以通过Per-module bytecode version:中对每个module进行字节码级别的设置。点旁边的+可以添加module,在Target bytecode version中可以选择jdk的字节码生成级别,对每个需要设置为1.6级别的module设置如下:


设置后重新编译生成的war包,部署发布到was后,运行正常,未出现java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version 的问题。


总结: 在IDEA这个IDE中在Language level 设置为6只是检查代码是按jdk 6级别来编写。但实际生成的字节码必须在java Compiler中设置级别。如果Project下的module统一是同一个级别编译,则Project bytecode version 统一设置字节码的级别或者按jdk默认来,如果各个module编译级别不相同,则在Per-module bytecode version分别进行相应设置。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值