web-dev-qa-db-ja.com

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

IntelliJを使用してこの問題が発生します。しかし、私はシステムに新しくインストールされたすべての最新バージョンを持っています。

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

私は設定しました:

PATH C:\ Program Files\Java\jdk-13 Java_HOME as:C:\ Program Files\Java\jdk-13 JRE_HOME as:C:\ Program Files\Java\jre1.8.0_221

パスを設定し、プロジェクト構造の変更を見つけようとしました

完全なエラーメッセージ:

H:\087-Java\HelloWorld\src>Java com.codewithmosh.Main
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" Java.lang.UnsupportedClassVersionError: com/codewithmosh/Main has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at Java.lang.ClassLoader.defineClass1(Native Method)
        at Java.lang.ClassLoader.defineClass(Unknown Source)
        at Java.security.SecureClassLoader.defineClass(Unknown Source)
        at Java.net.URLClassLoader.defineClass(Unknown Source)
        at Java.net.URLClassLoader.access$100(Unknown Source)
        at Java.net.URLClassLoader$1.run(Unknown Source)
        at Java.net.URLClassLoader$1.run(Unknown Source)
        at Java.security.AccessController.doPrivileged(Native Method)
        at Java.net.URLClassLoader.findClass(Unknown Source)
        at Java.lang.ClassLoader.loadClass(Unknown Source)
        at Sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at Java.lang.ClassLoader.loadClass(Unknown Source)
        at Sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
11
nobism

PATH環境設定を再確認する必要があります。 _C:\Program Files\Java\jdk-13_現在、正しくありません。 binリストの一番上に、最新のJDKバージョンのPATHサブディレクトリがあることを確認してください。

_Java.exe_実行可能ファイルは_C:\Program Files\Java\jdk-13\bin_ディレクトリにあるため、これがPATHに必要です。

Windowsで環境変数をすばやく確認または編集するには、 このツール を使用します。 PATHエントリを並べ替えることができます。また、無効なパスを赤で強調表示します。

コードをより低いJDKバージョンでも実行したい場合は、IDEでターゲットのバイトコードバージョンを変更します。関連するスクリーンショットについては この回答 を参照してください。

Javaクラスファイルのバージョンについては this answer も参照してください。何が起こるかというと、Java 13および13言語レベルのバイトコード(ターゲット)でコードをビルドし、それに従って最初の(デフォルト)JavaバージョンであるJava 8で実行しようとすることです。 PATH変数構成。

解決策は、上記のbinまたはJava 8の代わりにJava 13 PATHディレクトリを作成することです。Windowsでは、C:\Program Files (x86)\Common Files\Oracle\Java\javapathを自動的にPATHこれはJava 8を指します:

javapath

その場合は、強調表示されている部分をPATHから削除してからログアウト/ログインするか、再起動して変更を有効にします。システム変数を編集できるようにするには、最初に管理者として再起動する必要があります(システム変数列の右上にあるボタンを参照)。

8
CrazyCoder

oracleがjreをインストールし、調査後にこの問題を解決したとき、同じ問題に直面しています。

環境パスを移動しましたC:\Program Files (x86)\Common Files\Oracle\Java\javapath _H:\Program Files\Java\jdk-13.0.1\bin_の下

このような:-

_H:\Program Files\Java\jdk-13.0.1\bin_
C:\Program Files (x86)\Common Files\Oracle\Java\javapath

OR

_%Java_HOME%_
_%JRE_HOME%_

1
S Kumar

私も尋ねられた同様の問題に遭遇しました here 。問題は、一部のアプリケーションに独自のJREが付属しており、インストールされているJDKが環境パスの優先度レベルが低い場合があることです。現在、2つのオプションがあります。

  1. 独自のJDK/JREを持つ他のアプリケーションをアンインストールします。
  2. 私の場合、他のアプリケーションを削除できない場合があります。そこで、私がインストールしたJDkを環境パスのより高い優先度レベルに移動しました。

enter image description here

@CrazyCoderによって提案されたパスも削除しました

0
Karan

一部のGroovyスクリプトを実行しようとすると、IntelliJで同様の問題が発生しました。ここで私はそれを解決した方法です。

「プロジェクト構造」->「プロジェクト」->「プロジェクト言語レベル」に移動し、「SDKデフォルト」を選択します。これは、すべてのプロジェクトモジュールに同じSDKを使用する必要があります。

0
Memin