このエラーが発生しています
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
に設定されます。
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
--------------------------------------------------------------------------------
このEclipse設定パネルでは、コンパイラーの互換性を1.7から1.6に変更できます。これは私が得ていた同様のメッセージを解決しました。 Eclipseの場合、[設定]-> Java->コンパイラー:「コンパイラー準拠レベル」の下にあります。
また、適切なProject Facets Javaバージョンを設定したことを確認する必要があります。モジュールプロパティ->プロジェクトファセット-> Java 1.6をチェックする必要があります
このエラーは、プロジェクトがJDK 1.6でコンパイルされており、Java 7でコンパイルされた依存関係がある場合に発生する可能性があります。
私は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にコーディングしたかったのです。
上記の変更を行った後でも同じエラーが発生していました
プロジェクトを右クリック->プロパティ-> Javaコンパイラ->コンパイラ準拠レベル-> 1.6に変更
この変更はプロジェクト固有のものです。うまくいけばうまくいくはずです。
同じエラーが発生していました。 Javaプロジェクトのプロジェクトファセットでは、Javaコンパイルレベルが1.7に設定されていましたが、WebSphere Application Server v7.0のランタイム構成はJRE v1.6でした。 Project FacetsでJavaコンパイルレベルを1.6に設定すると、エラーがなくなりました。コンパイラの準拠レベルを変更する必要はありませんでしたが、それでも1.7です。お役に立てれば!
ログに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
Mavenを使用する場合は、pom.xmlに追加してみてください
<properties>
...
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
...
</properties>
それ以外の場合は、コンパイラのバージョンを変更してみてください。
Eclipseで、[プロジェクト]-> [プロパティ]-> [Javaビルドパス]-> [注文とエクスポート]に移動します。複数のJREを使用している場合は、jdkおよびibmのようにしてみてください。順序はjdkで始まり、次にIBMである必要があります。これが私の問題の解決方法です。