Je reçois cette erreur
Java.lang.UnsupportedClassVersionError: JVMCFRE003 version majeure incorrecte; class = map/CareMonths, offset = 6
Le compilateur Java de mon Eclipse est défini sur 1.6
Et mon SDK Java installé dans C:\Program Files est 1.6.0
, Mais j'obtiens toujours le même message d'erreur application sur Webshere Application Server V7.
Que signifie offset=6
? Je souhaite compiler avec Java 6 et Websphere 7 prend en charge Java 6.
Je constate que le JDK du répertoire IBM où le serveur est installé est Java 7. Est-ce que cela est la cause? .... mais encore une fois, le compilateur Eclipse de mon espace de travail est défini sur Java 1.6
.
WebSphere Application Server V7 prend en charge la plate-forme Java, Standard Edition (Java SE) 6 (voir documentation relative aux spécifications et à l'API dans le réseau Déploiement (Tous les systèmes d'exploitation), Centre de documentation de la version 7.0) et c'est depuis la version V8.5 lorsque Java 7 a été prise en charge .
Je ne pouvais pas trouver la Java 6 SDK, et je ne pouvais que consulter messages IBM JVM dans documentation de Java 7 sous Windows . Hélas, je Impossible de trouver le message d'erreur dans la documentation non plus.
Depuis Java.lang.UnsupportedClassVersionError est "Lancé lorsque la Java machine virtuelle tente de lire un fichier de classe et détermine que les numéros de version majeur et mineur les fichiers ne sont pas pris en charge. ", vous avez rencontré un problème de construction de l'application avec une version plus récente de Java de celle prise en charge par l'environnement d'exécution, c'est-à-dire WebSphere Application Server 7.0.
Je me trompe peut-être, mais je pense que offset = 6 dans le message vous indique dans quelle position le problème d'incompatibilité s'est produit. Cela n'a aucune importance pour vous, pour moi et pour beaucoup d'autres personnes, mais certaines personnes pourraient le trouver utile, notamment. quand ils génèrent eux-mêmes du bytecode.
Exécutez la commande versionInfo pour connaître les fonctions installées de WebSphere Application Server V7, par exemple.
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
--------------------------------------------------------------------------------
Dans ce panneau Préférences Eclipse, vous pouvez modifier la compatibilité du compilateur de 1.7 à 1.6. Cela a résolu le message similaire que je recevais. Pour Eclipse, il se trouve sous: Préférences -> Java -> Compilateur: "Niveau de conformité du compilateur"
Vous devez également vous assurer que vous avez défini les facettes du projet appropriées Java version. Propriétés du module -> Facettes du projet -> Java 1.6 doit être coché).
Cette erreur peut se produire si votre projet compile avec JDK 1.6 et que vous avez des dépendances compilées avec Java 7.
Je recevais cette erreur dans websphere 8.5:
Java.lang.UnsupportedClassVersionError: JVMCFRE003 version majeure incorrecte; class = com/xxx/Peu importe, offset = 6
J'avais mon projet de niveau JDK défini à 1,7 dans Eclipse et was8 par défaut s'exécute sur JDK 1.6, donc il y avait un conflit. J'ai dû installer le kit de développement logiciel optionnel SDK 1.7 sur mon serveur Websphere, puis le problème a disparu. J'imagine que j'aurais pu également définir le niveau de mon projet à 1,6 dans Eclipse, mais je voulais coder à 1,7.
Je recevais la même erreur même après avoir fait les changements ci-dessus et ce que j'ai fait est
Faites un clic droit sur le projet-> Propriétés-> Compilateur Java-> Niveau de conformité du compilateur-> le change en 1.6
Ce changement est particulier pour le projet. Cela devrait fonctionner, espérons-le.
J'avais la même erreur. Dans les facettes de projet de mon Java, le niveau de compilation Java était défini sur 1,7, alors que WebSphere Application Server v7.0 comportait une composition d'exécution de JRE v1 Régler le niveau de compilation Java sur 1.6 dans Project Facets a effacé l'erreur. Je n'ai pas eu à modifier le niveau de conformité du compilateur, il reste tout de même 1.7. J'espère que cela vous aidera!
Au début vous devriez vérifier la version majeure de la problématique compilée .class
fichier , dans votre cas map/CareMonths
. Voir cette réponse comment le faire.
WAS7 utilise Java 6 ( comme dit Jacek ), et Java 6 utilise la version majeure 50, donc vous devez compiler votre projet avec Java 6 . Comment définir la version appropriée de Java dépend de votre IDE (par exemple, Eclipse, IntelliJ) ou votre outil de construction (par exemple, Maven, Ant).
Si le journal indique Java.lang.UnsupportedClassVersionError: JVM **** version majeure incorrecte.
Ensuite, le code et le serveur ne sont pas compilés avec la même version du JDK.
Pour résoudre ce problème, veuillez basculer la version du JDK dans le code ou le JDK du serveur.
Essayez ceci: - Dans le cas d'utilisation ci-dessous, je passe à 1.7_64 (JDK 1.7 64 bit)
c:\IBM\WebSphere\WSRR\v8.5\bin\managedk.bat -enableProfile -profileName WSRRSrv01 -sdkname 1.7_64
Si vous utilisez maven, essayez d’ajouter dans le fichier pom.xml
<properties>
...
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
...
</properties>
Sinon, essayez de changer la version du compilateur.
Dans Eclipse, sélectionnez Projet-> Propriétés-> Chemin de génération Java-> Commande et exportation. Si vous utilisez plusieurs JRE, essayez comme jdk et ibm. La commande devrait commencer par jdk puis IBM. Voici comment mon problème a été résolu.