2013-02-17 8 views
29

sto ottenendo questo erroreUnsupportedClassVersionError: JVMCFRE003 versione principale male in WebSphere AS 7

java.lang.UnsupportedClassVersionError: JVMCFRE003 versione principale male; class = map/CareMonths, offset = 6

compilatore Java di mio Eclipse è impostato su 1.6 e la mia installato Java SDK in C: \ Program Files è 1.6.0, ma ancora ottengo questo errore quando installo la mia applicazione per WebShere Application Server V7.

Che cosa significa offset=6? Voglio compilare utilizzando Java 6 e Websphere 7 supporta Java 6.

Vedo che il JDK nella directory IBM in cui è installato il server è Java 7. È ciò che sta causando questo? .... ma ancora il compilatore Eclipse del mio workspace è impostato su Java 1.6.

risposta

28

WebSphere Application Server V7 fa supporto Java Platform, Standard Edition (Java SE) 6 (vedere Specifications and API documentation nel Network Deployment (tutti i sistemi operativi), Versione 7.0 Information Center) ed è da allora the release V8.5 when Java 7 has been supported.

Non è stato possibile trovare la documentazione di Java 6 SDK e potrei solo consultare IBM JVM Messages in Java 7 Windows documentation. Ahimè, non sono riuscito a trovare il messaggio di errore nella documentazione.

Poiché java.lang.UnsupportedClassVersionError è "generato quando Java Virtual Machine tenta di leggere un file di classe e determina che i numeri di versione maggiore e minore nel file non sono supportati.", si è verificato un problema di creazione dell'applicazione con una versione più recente di Java rispetto a quella supportata dall'ambiente di runtime, ad esempio WebSphere Application Server 7.0.

Potrei sbagliarmi, ma penso che l'offset = 6 nel messaggio sia per farti sapere quale posizione ha causato il problema di incompatibilità. È irrilevante per te, per me e per molte altre persone, ma alcuni potrebbero trovare utile, esp. quando generano bytecode stessi.

Eseguire il comando versionInfo per informazioni sulle funzioni installate di WebSphere Application Server V7, ad es.

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 
-------------------------------------------------------------------------------- 
+1

Ciao ho lo stesso problema, ma non riesco a capire come risolvere il problema. Potete fornire una risposta diretta per questo numero – Himanshu

+0

sto usando webspare 8.5 dove webspare usa 1.6 internal e il mio compilatore eclipse 1.7 – Himanshu

+5

Se si usa un compilatore Java 7 e si targetizza un ambiente Java 6 è necessario impostare il compilatore della versione superiore per generare un bytecode conforme a 1.6. Vedi le opzioni '-source' e' -target' di 'javac'. –

6

In questo pannello delle preferenze di Eclipse è possibile cambiare la compatibilità compilatore 1,7-1,6. Questo ha risolto il messaggio simile che stavo ottenendo. per Eclipse, è sotto: Preferenze -> Java -> Compiler: 'livello di conformità del compilatore'

6

Questo errore può verificarsi se si proiettare sta compilando con JDK 1.6 e si dispone di dipendenze compilati con Java 7.

+2

Esattamente. Questo normalmente accade nei progetti di esperti – Kris

4

Stavo ricevendo questo errore in websphere 8.5:

java.lang.UnsupportedClassVersionError: JVMCFRE003 versione non valida; class = com/xxx/Whatever, offset = 6

Ho avuto il mio livello JDK di progetto impostato su 1.7 in eclissi e was8 di default gira su JDK 1.6 quindi c'era uno scontro. Ho dovuto installare l'SDK 1.7 opzionale sul mio server websphere e poi il problema è andato via. Suppongo che avrei potuto anche impostare il mio livello di progetto a 1.6 in Eclipse, ma volevo codificarlo a 1.7.

1

Stavo ottenendo lo stesso errore. Nei Project Facets del mio progetto Java, il livello di compilazione Java era impostato su 1.7 mentre WebSphere Application Server v7.0 aveva una composizione runtime di JRE v1.6; l'impostazione del livello di compilazione Java su 1.6 in Project Facets ha eliminato l'errore. Non ho dovuto modificare il livello di conformità del compilatore, tuttavia è ancora 1.7. Spero che questo ti aiuti!

1

All'inizio è necessario verificare la versione principale del file problematico compilato .class, nel proprio caso map/CareMonths. Vedi this answer come farlo.

WAS7 utilizza Java 6 (as said Jacek) e Java 6 utilizza la versione principale 50, quindi è necessario compilare il progetto con Java 6. Come impostare la versione corretta del compilatore Java dipende dal tuo IDE (ad esempio Eclipse, IntelliJ) o dallo strumento di compilazione (ad esempio Maven, Ant).

7

È inoltre necessario assicurarsi di aver impostato la versione Java di Facet di progetto appropriata. Proprietà del modulo -> Progetto sfaccettature -> Java 1.6 dovrebbe essere controllato

1

mi è stato sempre lo stesso errore anche dopo aver fatto sopra i cambiamenti e quello che ho fatto è

Fare clic destro sul Progetto-> proprietà-> java compilatore -> Livello di conformità del compilatore-> lo modifica in 1.6

Questo cambiamento è specifico per il progetto. Questo dovrebbe funzionare, si spera.

-3

L'ho risolto impostando env. variabile JAVA_HOME.

0

Se si utilizza Maven tenta di aggiungere nel pom.xml

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

In caso contrario provare a cambiare la versione del compilatore.

0

In eclissi, vai a Progetto-> Proprietà-> Percorso di costruzione Java-> Ordina ed esporta. Se si utilizzano più JRE, provare come jdk e ibm. L'ordine dovrebbe iniziare con jdk e poi IBM. Questo è il modo in cui il mio problema è stato risolto.

1

Se il registro indica java.lang.UnsupportedClassVersionError: JVM **** versione principale grave.

Quindi il codice e il server non sono compilati con la stessa versione JDK.

Per risolvere questo problema, cambiare la versione JDK nel codice o nel server JDK.

Prova questo: - In caso d'uso di seguito, im passaggio a 1.7_64 (JDK 1.7 a 64 bit)

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

Problemi correlati