web-dev-qa-db-ja.com

UnsupportedClassVersionErrorサポートされていないmajor.minorバージョン51.0はクラスをロードできません

可能性のある複製:
「main」スレッドの例外Java.lang.UnsupportedClassVersionError:a(Unsupporte d major.minor version 51.0)

Java jdk 1.7.0を使用して、Eclipse IDE(Indigo)でWebアプリケーションを開発し、Tomcat(Apache-Tomcat- 7.0.23)Eclipse IDEで構成されています。

IDEを介してアプリケーションを実行しようとした場合、問題なく実行されますが、その戦争を作成してApacheデプロイメントフォルダ(webapps)に配置し、IDE開始ページは正常にロードされますが、それに対して何らかの操作を行おうとするとエラーが発生します

UnsupportedClassVersionError unsupported major.minor version 51.0 unable to load class bean.myclassname

jdk 1.7.0の外側のJavaバージョンをチェックしました。また、Java_HOME環境変数がC:\ Program Files\Java\jdk1.7.0_01に設定されています。

32
Nishit Jain

おそらく、外部で実行するときに同じバージョンのJavaを使用していないと思われます。起動スクリプトを注意深く調べて、実行するJavaのバージョンをピックアップする場所を見つけます。また、起動ログをチェックして、実行中のバージョンを示しているかどうかを確認する必要があります。

または、Java 7機能をneedしない限り、Eclipseのコンパイラ設定を常にターゲット1.6に変更できます。

34
Jon Skeet

EclipseのJDKは1.7ですが、Eclipseのコンパイルレベルも1.7に設定する必要があります。コンパイルレベルを確認できます->ウィンドウ->設定-> Java--コンパイラ-コンパイルレベル。

サポートされていない重大なマイナーエラーは、コンパイルレベルがランタイムと一致しない場合に発生します。

16
kosa

Java_home環境変数は、Javaインストールディレクトリの適切なバージョンの場所を指す必要があります。これにより、Tomcatは正しいバージョンで起動します。たとえば、Java 1.7、Java_HOME環境変数がマシンのjdk 1.7インストールディレクトリを指していることを確認します。

私は同じ問題を抱えていました、Tomcatで戦争を展開して実行すると、リンクがエラーをスローします。しかし、変数-Java_HOMEをjdk 1.7にポイントすると、warファイルがJava 1.7環境でビルドされたため、問題が解決しました。

Eclipse.iniファイルに次を追加してみてください。

-vm
C:\Program Files\Java\jdk1.7.0_01\bin\Java.exe

同じファイルでDosgi.requiredJavaVersionを1.7に変更する必要がある場合もあります。

0
Justin Buser