web-dev-qa-db-ja.com

java.lang.UnsupportedClassVersionError:offset = 6のメジャーバージョンが不正

WAR filewebappsTomcatフォルダにあります。そして、私がTomcatを起動しているとき、以下のように

C:\Apache-Tomcat-6.0.35\bin>startup.bat
Using CATALINA_BASE:   "C:\Apache-Tomcat-6.0.35"
Using CATALINA_HOME:   "C:\Apache-Tomcat-6.0.35"
Using CATALINA_TMPDIR: "C:\Apache-Tomcat-6.0.35\temp"
Using JRE_HOME:        "C:\Program Files (x86)\IBM\RationalSDLC\Common\Java5.0\jre"
Using CLASSPATH:       "C:\Apache-Tomcat-6.0.35\bin\bootstrap.jar"

これは例外です-

SEVERE: Error deploying web application archive DirectoryServer.war
Java.lang.UnsupportedClassVersionError: (com/services/rest/Listener) bad major version at offset=6 (unable to load class com.services.rest.Listener)
    at org.Apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.Java:2822)
    at org.Apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.Java:1159)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1647)
    at org.Apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.Java:1526)
    at org.Apache.catalina.startup.WebAnnotationSet.loadClassAnnotation(WebAnnotationSet.Java:145)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationListenerAnnotations(WebAnnotationSet.Java:73)
    at org.Apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.Java:56)
    at org.Apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.Java:297)
    at org.Apache.catalina.startup.ContextConfig.start(ContextConfig.Java:1078)
    at org.Apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.Java:261)
    at org.Apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.Java:142)
    at org.Apache.catalina.core.StandardContext.start(StandardContext.Java:4612)
    at org.Apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.Java:799)
    at org.Apache.catalina.core.ContainerBase.addChild(ContainerBase.Java:779)
    at org.Apache.catalina.core.StandardHost.addChild(StandardHost.Java:601)
    at org.Apache.catalina.startup.HostConfig.deployWAR(HostConfig.Java:943)
    at org.Apache.catalina.startup.HostConfig.deployWARs(HostConfig.Java:778)
    at org.Apache.catalina.startup.HostConfig.deployApps(HostConfig.Java:504)
    at org.Apache.catalina.startup.HostConfig.start(HostConfig.Java:1317)
    at org.Apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.Java:324)
    at org.Apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.Java:142)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1065)
    at org.Apache.catalina.core.StandardHost.start(StandardHost.Java:840)
    at org.Apache.catalina.core.ContainerBase.start(ContainerBase.Java:1057)
    at org.Apache.catalina.core.StandardEngine.start(StandardEngine.Java:463)
    at org.Apache.catalina.core.StandardService.start(StandardService.Java:525)
    at org.Apache.catalina.core.StandardServer.start(StandardServer.Java:754)
    at org.Apache.catalina.startup.Catalina.start(Catalina.Java:595)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:79)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:618)
    at org.Apache.catalina.startup.Bootstrap.start(Bootstrap.Java:289)
    at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:414)

そして、これは私のJava version-

C:\Apache-Tomcat-6.0.35\bin>Java -version
Java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)

なぜそれが起こっているのですか?

10
arsenal

本質的にJDK 1.6でコードをコンパイルしましたが、Java 5で実行しました-Java 6ランタイムを確認してください。

18
Biju Kunjummen

私も同じ問題に直面しました。問題は、例として不適切なクラスバージョンです。別のjreでコンパイルする。

解決策:EclipseまたはRADを使用している場合は、要件に従ってコンパイラー設定を変更し、「プロジェクト固有の設定の構成」をクリックして同じ設定をプロジェクト構成に変更します。 Windows-> Preferences-> Compiler->「プロジェクト固有の設定の構成」リンクをクリックします。

2
Arun K

私にとっての修正は、Java_Homeシステム変数を正しいパスに設定することでした。

Java_Home system variable

0
SpeedyAkron