web-dev-qa-db-ja.com

UnsupportedClassVersionError:WebSphere AS 7のJVMCFRE003悪いメジャーバージョン

このエラーが発生しています

Java.lang.UnsupportedClassVersionError:JVMCFRE003 bad major version; class = map/CareMonths、offset = 6

EclipseのJavaコンパイラは1.6に設定され、C:\ Program FilesにインストールされているJava SDKは1.6.0ですが、それでもこのエラーが発生しますWebshere Application Server V7にアプリをインストールします。

offset=6はどういう意味ですか? Java 6を使用してコンパイルし、Websphere 7はJava 6をサポートします。

サーバーがインストールされているIBMディレクトリのJDKがJava 7.であることがわかります。これが原因です。 ....しかし、再び私のワークスペースのEclipseコンパイラはJava 1.6に設定されます。

33
mi3

WebSphere Application Server V7は、Java Platform、Standard Edition(Java SE)6をサポートします(ネットワークの 仕様およびAPIドキュメント を参照)デプロイメント(すべてのオペレーティングシステム)、バージョン7.0インフォメーションセンター)以降 Java 7がサポートされているリリースV8.5

Java 6 SDKドキュメントが見つからず、- Java 7 WindowsドキュメントIBM JVMメッセージ のみを参照できました。残念ながら、ドキュメントにもエラーメッセージが見つかりませんでした。

Java.lang.UnsupportedClassVersionError is "Java仮想マシンがクラスファイルを読み取ろうとしてスローされ、メジャーバージョン番号とマイナーバージョン番号がファイルはサポートされていません。」、ランタイム環境、つまりWebSphere Application Server 7.0でサポートされているものよりも新しいバージョンのJavaを使用してアプリケーションを構築する問題に遭遇しました。

間違っているかもしれませんが、メッセージ内のoffset = 6は、非互換性の問題が発生した原因を教えてくれると思います。それはあなたにとっても、私にとっても、そして他の多くの人々にとっても関係ありませんが、特に便利だと感じる人もいます。自分でバイトコードを生成するとき。

versionInfo コマンドを実行して、WebSphere Application Server V7のInstalled Featuresについて調べます。

C:\IBM\WebSphere\AppServer>.\bin\versionInfo.bat
WVER0010I: Copyright (c) IBM Corporation 2002, 2005, 2008; All rights reserved.
WVER0012I: VersionInfo reporter version 1.15.1.47, dated 10/18/11

--------------------------------------------------------------------------------
IBM WebSphere Product Installation Status Report
--------------------------------------------------------------------------------

Report at date and time February 19, 2013 8:07:20 AM EST

Installation
--------------------------------------------------------------------------------
Product Directory        C:\IBM\WebSphere\AppServer
Version Directory        C:\IBM\WebSphere\AppServer\properties\version
DTD Directory            C:\IBM\WebSphere\AppServer\properties\version\dtd
Log Directory            C:\ProgramData\IBM\Installation Manager\logs

Product List
--------------------------------------------------------------------------------
BPMPC                    installed
ND                       installed
WBM                      installed

Installed Product
--------------------------------------------------------------------------------
Name                  IBM Business Process Manager Advanced V8.0
Version               8.0.1.0
ID                    BPMPC
Build Level           20121102-1733
Build Date            11/2/12
Package               com.ibm.bpm.ADV.V80_8.0.1000.20121102_2136
Architecture          x86-64 (64 bit)
Installed Features    Non-production
                      Business Process Manager Advanced - Client (always installed)
Optional Languages    German
                      Russian
                      Korean
                      Brazilian Portuguese
                      Italian
                      French
                      Hungarian
                      Simplified Chinese
                      Spanish
                      Czech
                      Traditional Chinese
                      Japanese
                      Polish
                      Romanian

Installed Product
--------------------------------------------------------------------------------
Name                  IBM WebSphere Application Server Network Deployment
Version               8.0.0.5
ID                    ND
Build Level           cf051243.01
Build Date            10/22/12
Package               com.ibm.websphere.ND.v80_8.0.5.20121022_1902
Architecture          x86-64 (64 bit)
Installed Features    IBM 64-bit SDK for Java, Version 6
                      EJBDeploy tool for pre-EJB 3.0 modules
                      Embeddable EJB container
                      Sample applications
                      Stand-alone thin clients and resource adapters
Optional Languages    German
                      Russian
                      Korean
                      Brazilian Portuguese
                      Italian
                      French
                      Hungarian
                      Simplified Chinese
                      Spanish
                      Czech
                      Traditional Chinese
                      Japanese
                      Polish
                      Romanian

Installed Product
--------------------------------------------------------------------------------
Name                  IBM Business Monitor
Version               8.0.1.0
ID                    WBM
Build Level           20121102-1733
Build Date            11/2/12
Package               com.ibm.websphere.MON.V80_8.0.1000.20121102_2222
Architecture          x86-64 (64 bit)
Optional Languages    German
                      Russian
                      Korean
                      Brazilian Portuguese
                      Italian
                      French
                      Hungarian
                      Simplified Chinese
                      Spanish
                      Czech
                      Traditional Chinese
                      Japanese
                      Polish
                      Romanian

--------------------------------------------------------------------------------
End Installation Status Report
--------------------------------------------------------------------------------
31
Jacek Laskowski

このEclipse設定パネルでは、コンパイラーの互換性を1.7から1.6に変更できます。これは私が得ていた同様のメッセージを解決しました。 Eclipseの場合、[設定]-> Java->コンパイラー:「コンパイラー準拠レベル」の下にあります。

8
V..

また、適切なProject Facets Javaバージョンを設定したことを確認する必要があります。モジュールプロパティ->プロジェクトファセット-> Java 1.6をチェックする必要があります

8
Marik Palyg

このエラーは、プロジェクトがJDK 1.6でコンパイルされており、Java 7でコンパイルされた依存関係がある場合に発生する可能性があります。

6
ozOli

私はwebsphere 8.5でこのエラーを受け取っていました:

Java.lang.UnsupportedClassVersionError:JVMCFRE003のメジャーバージョンが不良です。 class = com/xxx/Whatever、offset = 6

EclipseでプロジェクトのJDKレベルを1.7に設定し、デフォルトではJDK 1.6でwas8を実行したため、衝突が発生しました。オプションのSDK 1.7をWebsphereサーバーにインストールする必要があり、問題はなくなりました。 Eclipseでプロジェクトレベルを1.6に設定することもできたと思いますが、1.7にコーディングしたかったのです。

4
Glenn

上記の変更を行った後でも同じエラーが発生していました

プロジェクトを右クリック->プロパティ-> Javaコンパイラ->コンパイラ準拠レベル-> 1.6に変更

この変更はプロジェクト固有のものです。うまくいけばうまくいくはずです。

2
CodingOwl

同じエラーが発生していました。 Javaプロジェクトのプロジェクトファセットでは、Javaコンパイルレベルが1.7に設定されていましたが、WebSphere Application Server v7.0のランタイム構成はJRE v1.6でした。 Project FacetsでJavaコンパイルレベルを1.6に設定すると、エラーがなくなりました。コンパイラの準拠レベルを変更する必要はありませんでしたが、それでも1.7です。お役に立てれば!

1
Prince

最初に、コンパイル済みの問題のある.classファイルのメジャーバージョンをチェックする必要があります(場合によってはmap/CareMonths)。 この回答 方法を参照してください。

WAS7はJava 6を使用します( 前述のJacek )、Java 6はメジャーバージョン50を使用するため、をコンパイルする必要がありますJava 6のプロジェクト。 Javaコンパイラの適切なバージョンの設定方法は、IDE(Eclipse、IntelliJなど)またはビルドツール(Maven、Antなど)によって異なります。

1
lu_ko

ログにJava.lang.UnsupportedClassVersionError:JVM **** bad major versionが示されている場合。

その場合、コードとサーバーは同じJDKバージョンでコンパイルされません。

これを修正するには、コードまたはサーバーJDKでJDKバージョンを切り替えてください。

これを試してください:-以下のユースケースでは、1.7_64(JDK 1.7 64ビット)に切り替えます

c:\ IBM\WebSphere\WSRR\v8.5\bin\managesdk.bat -enableProfile -profileName WSRRSrv01 -sdkname 1.7_64

1

Mavenを使用する場合は、pom.xmlに追加してみてください

<properties>
    ...
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    ...
</properties>

それ以外の場合は、コンパイラのバージョンを変更してみてください。

0
Leonardo Pineda

Eclipseで、[プロジェクト]-> [プロパティ]-> [Javaビルドパス]-> [注文とエクスポート]に移動します。複数のJREを使用している場合は、jdkおよびibmのようにしてみてください。順序はjdkで始まり、次にIBMである必要があります。これが私の問題の解決方法です。

0
Nelda