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)
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を指します:
その場合は、強調表示されている部分をPATH
から削除してからログアウト/ログインするか、再起動して変更を有効にします。システム変数を編集できるようにするには、最初に管理者として再起動する必要があります(システム変数列の右上にあるボタンを参照)。
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%
_
私も尋ねられた同様の問題に遭遇しました here 。問題は、一部のアプリケーションに独自のJREが付属しており、インストールされているJDKが環境パスの優先度レベルが低い場合があることです。現在、2つのオプションがあります。
@CrazyCoderによって提案されたパスも削除しました
一部のGroovyスクリプトを実行しようとすると、IntelliJで同様の問題が発生しました。ここで私はそれを解決した方法です。
「プロジェクト構造」->「プロジェクト」->「プロジェクト言語レベル」に移動し、「SDKデフォルト」を選択します。これは、すべてのプロジェクトモジュールに同じSDKを使用する必要があります。