問題: 私の war を tomcat7 に展開すると、 java.lang.UnsupportedClassVersionError: org.MyLibraryClass : Unsupported major.minor version 51.0 というエラーが表示されます
(これは、コードの実行時に使用された Java よりも新しいバージョンで Java をコンパイルするときに発生するエラーです。)
状況、順番:
- 仮想ボックス内の真新しいubuntu 12.04.1サーバー64ビット最小
- インストールされたtomcat6
- 私の戦争を展開しようとした
- エラーに気づき、ubuntu 12にはまだ古いJavaが付属しているため、Java7が必要であることに気づきました
このガイドを使用してOracle Java 7をインストールしましたhttps://askubuntu.com/questions/197248/java-on-ubuntu-server-12-04
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installer
tomcat6 を削除し、tomcat7 をインストールしました
sudo apt-get remove tomcat6-common sudo apt-get install tomcat7
私の戦争をtomcat7に展開しました
トムキャットはじめました
sudo service tomcat7 start
アプリのログファイルを確認しました。同じエラー。
echo $JAVA_HOME は空です。 java -version は次のように表示されます。
java version "1.7.0_07" Java(TM) SE Runtime Environment (build 1.7.0_07-b10) Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)
これはデフォルトの tomcat7 インストールであり、変更はありません。それでも、起動スクリプトと構成をチェックして、カスタム Java バージョンがどこにも指定されていないことを確認しました。また、カタリナに尋ねて確認しました:
ubuntu@ubuntu:/home$ /usr/share/tomcat7/bin/catalina.sh version Using CATALINA_BASE: /usr/share/tomcat7 Using CATALINA_HOME: /usr/share/tomcat7 Using CATALINA_TMPDIR: /usr/share/tomcat7/temp Using JRE_HOME: /usr Using CLASSPATH: /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar Server version: Apache Tomcat/7.0.26 Server built: Jul 19 2012 03:21:30 Server number: 7.0.26.0 OS Name: Linux OS Version: 3.2.0-29-generic Architecture: amd64 JVM Version: 1.7.0_07-b10 JVM Vendor: Oracle Corporation
今私は立ち往生しています。Javaコードがオラクルのjre7で実行に失敗する可能性がある方法がわかりません。
私の戦争は、jdk7 でコンパイルされた maven 依存関係 (org.MyLibraryClass) を持つ、maven を使用した真新しい非常に基本的な hello world grails 2.1 アプリです。それは私がエラーを受け取るものです。
grails で、BuildConfig.groovy を 1.6 ではなく 1.7 に変更しました。
grails.project.target.level = 1.7 grails.project.source.level = 1.7
次に、grails のクリーン、再構築、戦争、再デプロイを行いました。変化なし。
次に何を試してみますか?