クラスは、Java環境のより新しいバージョンによってコンパイルされています


93

セレンスクリプトの実行中に、Eclipseコンソールに次のエラーメッセージが表示されます。

クラスは、より新しいバージョンのJava環境(クラスファイルバージョン53.0)によってコンパイルされています。このバージョンのJavaランタイムは、52.0までのクラスファイルバージョンのみを認識します。


  • Javaバージョン: 8
  • IDE: Eclipse Oxygen
  • Firefoxバージョン: 46

6
クラスファイルバージョン53 =Java9。Java8JVMはJava9コードを実行できません。
遠吠え2017年

回答:


128

これはバージョンの不一致です。Javaバージョン9を使用してコードをコンパイルし、現在のJREはバージョン8です。JREを9にアップグレードしてみてください。

49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14

24
論理的な選択についてアドバイスを与えることは、まったく良い解決策ではないかもしれません...プロジェクトが最初にjre-8で実行され、誰かが誤って9に対してモジュールをコンパイルした場合はどうなりますか?
ユージーン

下位互換性の問題が発生しないため、アップグレードによって問題が発生することはないと思います。そして、コンパイラが最新バージョンにアップグレードされたと私は信じているので、それは論理的でした。
ニティーン2017年

10
あなたは小さなサンドボックスプロジェクトの観点から考えています。エンタープライズプロジェクトの場合-これは決して簡単な移行ではありません。たとえば、7でそれらの副作用に依存していたジェネリックのいくつかのバグが8で修正されました。またはHashMap順序が7から8に変更されました...など。私はこれに直面しました。簡単に言うと、9に移動するのは良いオプションですが、単純で高速なオプションではありません
Eugene

エンタープライズプロジェクトレベルの観点から述べているのであれば、そうです、あなたは正しいです。私はその点に強く同意します。このようなシナリオでは、アップグレード/ダウングレードが最も実行可能なオプションになることはありません。
ニティーン2017年

@nithinpankaj基本的に、Java 9を使おうとするたびに、いくつかの新しいエラーがスローされました。アップグレードする理由もなく、私は試してみるのをやめ、Java 9についてはかなり悪い意見を持っています。
Erhannis19年

41

IDE:Eclipse Oxygen.3

問題を一時的に修正するには、次のようにします。

Project menu> Properties> Java Compiler> Compiler compliance level>1.8

恒久的な修正には、JDK9のインストールが含まれる可能性があります。

参考までに1.8はJava8と呼ばれるものです。

サイドバー

私は最近、C#(新鮮な空気の息吹)に侵入した後、Javaに戻り、これまでJavaがインストールされたことのないクリーンなシステムにEclipseOxygenをインストールしました。これは、Eclipse Oxygenの新しいインストールですべてデフォルトにしますが、どういうわけか、または他のEclipseは、インストールされているjdkに一致する独自のパラメーターを取得できません。これは私が作成した2番目のプロジェクトであり、この頭痛の種に遭遇したのは2回目です。C#に戻る時間ですか?

関連する質問

Javaランタイムの最新バージョン(クラスファイルバージョン53.0)によってコンパイルされています


面白い。それで、バイトコードは上位互換性がないという意味ですか?
TOTO」


6

53java-9の略であるため、コンパイルされたクラスが何であれ、それjavac-9をで実行しようとすることを意味しjre-8ます。そのクラスをで再コンパイルするかjavac-8、jre-9を使用します


2

他の答えが理解しにくいと思ったので、これを書いています。

基本的に、JREが更新されていないか、Eclipseが最新のJREを使用するように構成されていません。

Windowsでは、[コントロールパネル]-> [プログラム]-> [Java]-> [更新]に移動し、Javaの更新に進みます。

または、Javaを使用していない場合は、OracleのWebサイトにアクセスして、最新のJREをダウンロードしてください。

これが完了したら、Eclipseに移動し、プロジェクトビューでプロジェクトを右クリックし、[Javaビルドパス]を選択し、[JREシステムライブラリ]をダブルクリックして、[ワークスペースのデフォルトJRE14.1]を選択します。

最近のバージョンのJavaがここに表示されない場合は、おそらくインストールされていません。JRE(JDKではない)バージョンをチェックし、それが最新であることを確認してください。そうである場合は、コンピューターを再起動してから、これを再試行してください。


0

プロジェクトセクションに移動し、プロパティをクリックしてからJavaコンパイラに移動します>コンパイラのコンプライアンスレベルが1.8であることを確認します。そうでない場合、下部に黄色の警告が表示されないはずです。



0

IntellijでJarをビルドした後、コンソールから同様の問題が発生しました。Java構成を使用して新しいバージョンに更新する(Windows-> Javaの構成->更新->今すぐ更新)は機能せず、バージョン1.8(Java 8)でスタックしました。

ローカルでより新しいバージョンに切り替えるには、https: //www.oracle.com/uk/java/technologies/javase-jdk15-downloads.htmlからJava 15 JDKをインストールし、それをJavaランタイム環境設定に追加する必要がありました。

Javaランタイム環境設定


-1

一時的な解決策については、プロジェクト=>プロパティ=> Javaコンパイラ=>そこを右クリックして、コンパイラコンプライアンスレベル1.8 =>。class互換性1.8 =>ソース互換性1.8を選択してください。

その後、コードはバージョン1.8で実行を開始します

よろしくお願いします、アクシャイケンジャレ。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.