Unsupported major.minor version 51.0解決策、各種jdk難病を長期にわたって記録する

1406 ワード

文書ディレクトリ
  • 更新記録
  • 前言
  • VersionとJDKバージョンの対応:
  • 原因
  • 再生(eclipseベース)
  • 補足
  • レコードの更新
  • 2019-7-29 oracleのエラー再生
  • 2019-7-27書き換え
  • 2018-7-5初稿
  • 前言
    18年にこの間違いに遭遇した時、長い間振り回されて、その時ブログを覚えました.その後、私は自分でも同僚でも博友でも、よくこの間違いに穴を踏んでいることに気づいた.だから、後で穴を踏まないように、間違いの原因を整理し、間違いを再現する必要があります.
    VersionとJDKバージョンの対応:
    52.0 -> 8.0 51.0 -> 7.0 50.0 -> 1.6 49.0 -> 1.5
    の原因となる
    低バージョンJDKは、高バージョンJDKでコンパイルされたclassクラスを実行します.たとえば、エラーは51.0で、プロジェクトのJDKバージョンがJDK 7であることを示し、JDK 7より低いバージョンを使用してプロジェクトを実行します.
    再生(eclipseベース)
  • 再現一:Java
  • JDK 5のJavaプロジェクト
  • を作成
  • Run Configurationsで設定JREは1.5
  • 修正項目のJDKバージョンはJDK 7
  • プロジェクトを実行し、エラーを報告しました.
  • Run ConfigurationsのJREを1.7以上に切り替え、エラー解決!
  • 再現2:Tomcat
  • JDK 5のJavaプロジェクト
  • を作成
  • JRE 1.5 tomcat
  • を作成
  • 修正項目のJDKバージョンはJDK 5
  • プロジェクトを実行し、エラーを報告しました.
  • Server->Runtime Environment切り替えtomcatのJREは1.7以上で、エラー解決!(tomcatプラグインを使用する場合:Tomcat->JVMSettingsで変更)
  • 再現3:Oracleが最近生産を導入しているプロジェクトで51.0エラーが報告されました.生産tomcatはJDK 6を使用しています.Oracleドライバjarパッケージはojdbc 7で、ojdbc 6以下のバージョンに置き換えるとエラーは報告されません.注意:Oracleのドライバ・バージョンとJDkの対応:ojdbc 14->JDK 4 ojdbc 5->JDK 5 ojdbc 6->JDK 6
  • 再現四:Maven(コメントの中のやり方は参考にできる)
  • 補足
    このエラーFailed to write core dump. Minidumps are not enabled by default on client versions of Windowsも同様の解決策です.