UnsupportedClassVersionError:JVMCFRE003bad 问题分析与解决

问题分析

com.ibm.ws.webcontainer.annotation.WASAnnotationHelpercollectClasses unable to instantiate class

java.lang.UnsupportedClassVersionError:JVMCFRE003bad major version;class=com/soa/listener/SpringContextLoaderListener, offset=6

at java.lang.ClassLoader.defineClassImpl(NativeMethod) at java.lang.ClassLoader.defineClass(ClassLoader.java:28

 

//解决方案与方法如下:

http://stackoverflow.com/questions/14926402/unsupportedclassversionerror-jvmcfre003-bad-major-version-in-websphere-as-7

 

up vote 17 down vote accepted

WebSphere Application Server V7 does supportJava Platform, Standard Edition (Java SE) 6(seeSpecifications and API documentationin the Network Deployment (All operating systems), Version 7.0 Information Center) and it's sincethe release V8.5 when Java 7 has been supported.

I couldn't find the Java 6 SDK documentation, and could only consultIBM JVM MessagesinJava 7 Windows documentation. Alas, I couldn't find the error message in the documentation either.

Sincejava.lang.UnsupportedClassVersionErroris"Thrown when the Java Virtual Machine attempts to read a class file and determines that the major and minor version numbers in the file are not supported.", you ran into an issue of building the application with more recent version of Java than the one supported by the runtime environment, i.e. WebSphere Application Server 7.0.

I may be mistaken, but I think thatoffset=6in the message is to let you know what position caused the incompatibility issue to occur. It's irrelevant for you, for me, and for many other people, but some might find it useful, esp. when they generate bytecode themselves.

Run theversionInfocommand to find out about theInstalled Featuresof WebSphere Application Server V7, e.g.

C:\IBM\WebSphere\AppServer>.\bin\versionInfo.bat
WVER0010I:Copyright(c) IBM Corporation2002,2005,2008;All rights reserved.
WVER0012I:VersionInfo reporter version 1.15.1.47, dated 10/18/11--------------------------------------------------------------------------------
IBM WebSphereProductInstallationStatusReport--------------------------------------------------------------------------------Report at date and time February19,20138:07:20 AM EST

Installation--------------------------------------------------------------------------------ProductDirectory        C:\IBM\WebSphere\AppServer
VersionDirectory        C:\IBM\WebSphere\AppServer\properties\version
DTD Directory            C:\IBM\WebSphere\AppServer\properties\version\dtd
LogDirectory            C:\ProgramData\IBM\Installation Manager\logs

ProductList--------------------------------------------------------------------------------
BPMPC                    installed
ND                       installed
WBM                      installed

InstalledProduct--------------------------------------------------------------------------------Name                  IBM BusinessProcessManagerAdvanced V8.0Version8.0.1.0
ID                    BPMPC
BuildLevel20121102-1733BuildDate11/2/12Package               com.ibm.bpm.ADV.V80_8.0.1000.20121102_2136
Architecture          x86-64(64 bit)InstalledFeaturesNon-production
                      BusinessProcessManagerAdvanced-Client(always installed)OptionalLanguagesGermanRussianKoreanBrazilianPortugueseItalianFrenchHungarianSimplifiedChineseSpanishCzechTraditionalChineseJapanesePolishRomanianInstalledProduct--------------------------------------------------------------------------------Name                  IBM WebSphereApplicationServerNetworkDeploymentVersion8.0.0.5
ID                    ND
BuildLevel           cf051243.01BuildDate10/22/12Package               com.ibm.websphere.ND.v80_8.0.5.20121022_1902
Architecture          x86-64(64 bit)InstalledFeatures    IBM 64-bit SDK forJava,Version6EJBDeploy tool for pre-EJB 3.0 modules
                      Embeddable EJB container
                      Sample applications
                      Stand-alone thin clients and resource adapters
OptionalLanguagesGermanRussianKoreanBrazilianPortugueseItalianFrenchHungarianSimplifiedChineseSpanishCzechTraditionalChineseJapanesePolishRomanianInstalledProduct--------------------------------------------------------------------------------Name                  IBM BusinessMonitorVersion8.0.1.0
ID                    WBM
BuildLevel20121102-1733BuildDate11/2/12Package               com.ibm.websphere.MON.V80_8.0.1000.20121102_2222
Architecture          x86-64(64 bit)OptionalLanguagesGermanRussianKoreanBrazilianPortugueseItalianFrenchHungarianSimplifiedChineseSpanishCzechTraditionalChineseJapanesePolishRomanian--------------------------------------------------------------------------------EndInstallationStatusReport--------------------------------------------------------------------------------
share improve this answer
 
1 
hi i have same problem but i cannot understand how to fix it. Can you provide some direct answer for this issueHimanshu Mar 27 '13 at 18:14
  
i am using webspare 8.5 where webspare use 1.6 internal and my eclipse compiler 1.7Himanshu Mar 27 '13 at 18:16
5 
If you use a Java 7 compiler and target a Java 6 environment you need to set up the higher-version compiler to generate 1.6-compliant bytecode. See-sourceand-targetoptions ofjavac.Jacek Laskowski Apr 2 '13 at 12:55
 

In this Eclipse Preferences panel you can change the compiler compatibility from 1.7 to 1.6. This solved the similar message I was getting. For Eclipse, it is under: Preferences -> Java -> Compiler: 'Compiler compliance level'

share improve this answer
 

This error can occur if you project is compiling with JDK 1.6 and you have dependencies compiled with Java 7.

share improve this answer
 
  
Exactly. This normally happens in maven projectsKris May 27 at 21:06

You should also make sure you have set appropriate Project Facets Java version. Module Properties -> Project Facets -> Java 1.6 should be checked

share improve this answer
 

I was getting this error in websphere 8.5:

java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=com/xxx/Whatever, offset=6

I had my project JDK level set at 1.7 in eclipse and was8 by default runs on JDK 1.6 so there was a clash. I had to install the optional SDK 1.7 to my websphere server and then the problem went away. I guess I could have also set my project level down to 1.6 in eclipse but I wanted to code to 1.7.

share improve this answer
 

I was getting the same error. In the Project Facets of my Java project, the Java compile level was set to 1.7 whereas the WebSphere Application Server v7.0 had a Runtime Composition of JRE v1.6; setting the Java compile level to 1.6 in Project Facets got rid of the error. I did not have to change the Compiler compliance level though, it's still 1.7. Hope this helps!

share improve this answer
 

At firstyou should check major version of compiled problematic.classfile, in your casemap/CareMonths. Seethis answerhow to do it.

WAS7 uses Java 6 (as said Jacek), and Java 6 uses major version 50, soyou have to compile your project with Java 6. How to set proper version of Java compiler depends on your IDE (e.g. Eclipse, IntelliJ) or build tool (e.g. Maven, Ant).

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值