java.lang.UnsupportedClassVersionErrorを修正する方法:サポートされていないmajor.minorバージョン


1573

オールインワンツールの編集、実行、コンパイルなどにNotepad ++を使用しようとしています。

私が持っているJREがインストールされ、私はに設定私のパス変数を持っている.../binディレクトリ。

Notepad ++で「Hello world」を実行すると、次のメッセージが表示されます。

java.lang.UnsupportedClassVersionError: test_hello_world :
 Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
       .........................................

ここでの問題はバージョンに関するものだと思います。Javaの一部のバージョンは、古すぎるか新しすぎる可能性があります。

  1. どうすれば修正できますか?
  2. JDKをインストールし、JREではなくJDKへのパス変数を設定する必要がありますか?
  3. PATHJREとJDKの変数の違いは何ですか?

jdkもインストールしましたか?jreはJavaランタイム環境です。Javaアプリを作成するには、jdkも必要です
CyprUS 2012

はい、私はそうしました、そして今私のパス変数はjdkがどこにあるかを指します。まだこの「サポートされていないマイナーバージョン51.0」エラーがまだあります。jdkの古いバージョンをインストールする必要がありますか?imはjdk 1.7.0を使用しています
ERJAN

20
これは、最近のOSXでのApple java 6とOracle java 7の奇妙な状況が原因で問題が発生していたMac OS Xで起こりました。ショートバージョン:JDK7でコンパイル、JDK6で実行、これを入手。
Warren P

7
javaでは、ClassNameは大文字で始める必要があります;)
Ashish Panery 14

5
エルキャプテンにとって、この答えは私のためにそれを修正しました:stackoverflow.com/a/34201991/1615594
tsuz

回答:


1940

表示されるバージョン番号は、クラスファイルと互換性のあるJREのバージョンを示しています。

報告されたメジャー番号は次のとおりです。

Java SE 14 = 58,
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(出典:ウィキペディア

実際の問題を解決するには、新しいバージョンのJava JREでJavaコードを実行するか、Javaコンパイラにターゲットパラメータを指定して、以前のJavaバージョンと互換性のあるコードを作成するようコンパイラに指示する必要があります。

たとえば、Java 1.4と互換性のあるクラスファイルを生成するには、次のコマンドラインを使用します。

javac -target 1.4 HelloWorld.java

Javaコンパイラの新しいバージョンでは、ブートストラップクラスパスが設定されていないという警告が表示される可能性があります。このエラーの詳細については、ブログ投稿のbootclasspathなしで古いソースを設定することに関する新しいjavac警告をご覧ください。


167
「表示されているバージョン番号は、Javaを使用してコードをコンパイルした場合のバージョンを示しています。」 いいえ、違います。 これは、クラスファイルと互換性のあるJREのバージョンを示しています。使用してクロスコンパイルオプションます(1.7を介して)1.1のクラスのバージョンでコンパイルコードに1.7 JDKを使用することができます。
Andrew Thompson

85
この回答は、質問されたときにそれを修正する方法を説明していませんか?
Jonathan Leung

7
これは、直接のEclipseから以前のバージョンにコンパイルするための素晴らしいソリューションです:stackoverflow.com/a/16345710/2091700
Alphaaa

19
IN eclipse project => Proerties => javaコンパイラ; 「コンパイラー準拠レベル」をjreまたはjdkに応じたバージョンに設定します。私としては、jre 1.6の場合は1.6です
Sam

5
これは、コンパイラソースが現在コンパイルされているJRE / JDKに準拠していない場合に発生することがあります。たとえば、私はeclipse .settingsフォルダー、org.eclipse.jdt.core.compiler.compliance = 1.7、org.eclipse.jdt.core.compiler.source = 1.7、org.eclipse.jdt.core.compilerから以下の値を見つけました.codegen.targetPlatform = 1.7。そして、私のコンパイラは1.6.0_32でした。値を1.6に変更した後、問題は解決しました。この問題は、JDK 1.7を使用していた別のワークスペースからプロジェクトをコピーした後に発生しました:(
Gana

367

java.lang.UnsupportedClassVersionError コンパイル時のJDKが高く、実行時のJDKが低いために発生します。


11
+1:このシンボリックリンク(/etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java)をjavacでのコンパイルに使用するバージョンに変更すると解決しました
ezdazuzena

1
上記の変更を行うにはどうすればよいですか?
Ankur Ra​​iyani 2013

8
プロジェクト->プロパティ-> Javaコンパイラプロジェクト固有の設定を有効にします。次に、コンパイラー準拠レベルを1.7、1.6、または1.5に選択し、アプリをビルドしてテストします。
Vivek Kumar Ray 2013

私がJava 7に移行したとき、どういうわけかEclipseはJava 6で実行しようとし続けました...なぜかわかりません。古いJDKをアンインストールするとうまくいきました。
HDave 2013

9
@ezdazuzena sudo update-alternatives --config javaはそのために使用します。
するThorbjörnRavnアンデルセン

115

Eclipseでは、メニューコマンドの[ ウィンドウ] -> [ 設定] -> [ Java ] -> [ コンパイラー]に移動し、「コンパイラー準拠レベル」を1.6に設定しました。


3
日食では、いつかプロジェクトのファセットも適切なJavaバージョンに変更する必要があります。
ビラルミルザ2013

6
ありがとう。Eclipseのデフォルトの実行環境(ビルドパスを実行するJRE)の設定は別の設定であることは注目に値します。私はJREを設定しましたが、コンパイラー準拠レベルは設定しませんでした。これはそれを修正しました。
wchargin 2014年

そして、ここがオプションを設定するのに適切な場所であるというエラーメッセージから、どのように結論を導きましたか?
アレクサンダー

多分これ:stackoverflow.com/questions/7073485/…は、antとeclipseを使用している場合に役立ちます。
OuuGiii 2017

問題はNotepad ++についてですが、Eclipseについてではありません。
gotwo

60

心配しないで、私はそれを解決しました。

実際には簡単です。同じバージョンのJRE / JDKの両方をインストールする必要があります。

JRE 6-> JDK 6

JRE 7-> JDK 7

等々。


29
Java 7も6を問題なく処理できます。
damienix 2013年

@damienix Java 7 JREがJava 6コンパイル済みクラスを問題なく処理できることを指定する必要があります。そうしないと、ステートメントが混乱を招きます。
Frontear

43

このエラーは、インストールしたバージョンよりも新しいバージョンのJavaでコンパイルされたJava「クラス」ファイルをロードしようとしていることを意味します。

たとえば、.classファイルがJDK 7用にコンパイルされていて、JDK 6で実行しようとしている可能性があります。

したがって、解決策は次のいずれかです。

  • Javaランタイムをアップグレードするか、
  • ソースがある場合は、ローカルJavaコンパイラー(使用している場合)を使用して、クラスを再コンパイルします。

    javac FileName.java

開発者にとって、これは別の開発者が.classファイルをチェックインし、あなたが持っているよりも新しいバージョンのJavaを持っている場合に発生する可能性があります。


22

コードがコンパイルされたバージョンをサポートしないJavaバージョンでプログラムを実行しようとしています。したがって、基本的には、コードを上位バージョンでコンパイルし、下位バージョンを使用して実行する必要があります。

あなたが得ているように

Unsupported major.minor version 51.0

また、バージョン51.0J2SE 7に対応しており、おそらくJava 7でコードをコンパイルし、それよりも低いバージョンを使用してコードを実行しようとしています。java -version表示内容を確認してください。Java 7バージョンである必要があります。そうでない場合は、PATH / JAVA_HOMEを適切に変更してください。または、コードを実行しようとしているのと同じバージョンでコンパイルできます。構成がわかりにくい場合は、常に絶対パスを指定できます/home/user/jdk1.7.0_11/bin/javacとを/home/user/jdk1.7.0_11/bin/java


18

Macでも同様の状況があり、次のプロセスでうまくいきました。

ターミナルで次のように入力します

vi ~/.profile

次に、この行をファイルに追加して保存します

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk<version>.jdk/Contents/Home

ここで、バージョンは、コンピュータ上のバージョンです(など)1.7.0_25

エディターを終了し、次のコマンドを入力して有効にします

source ~/.profile 

次にjava -versionと入力して結果を確認します

java -version 

.profileファイルとは何ですか?

.profileファイルは隠しファイルです。これはオプションのファイルで、プロファイルファイルを持っているユーザーがログインしたときに実行するコマンドをシステムに指示します。たとえば、ユーザー名がbrunoで、/ Users / bruno /に.profileファイルがある場合、そのすべてのコンテンツログイン中に実行されます。

ソース:http : //computers.tutsplus.com/tutorials/speed-up-your-terminal-workflow-with-command-aliases-and-profile--mac-30515


16

Eclipseのメニューウィンドウ -> 設定 -> Java- > コンパイラまた、「設定プロジェクト固有の設定」をご確認ください。

同じJavaバージョンでエラーが発生する場合は、プロジェクトのビルドフォルダーを手動で削除してみてください。次に、Eclipseを再起動します。


14

Java 7でコンパイルされたJARライブラリをいくつか持つことができ、JavaランタイムとしてJava 6しかありません。一部の新しいライブラリで発生する可能性があります。


14

最も一般的な問題は、JAVA_HOME変数が正しく設定されていないことです。これは、複数がインストールされている場合、正しいJava Development Kitライブラリを指す必要があります。

SDK Javaフォルダーの場所を見つけるには、次のコマンドを実行します。

jrunscript -e 'java.lang.System.out.println(java.lang.System.getProperty("java.home"));'

Debian / Ubuntu

インストールしたjava(openjdk)を確認するには、次の方法で確認します。

dpkg -l "openjdk*" | grep ^i

または:

update-java-alternatives -l

変更するには、次を使用します。

update-alternatives --config java

接頭辞 sudo必要に応じてます。

代替Javaバージョンを選択します。

または、インストール可能なものを確認します。

apt-cache search ^openjdk

接頭辞 sudo必要に応じてます。

次に、たとえば次のようにインストールできます。

apt-get install openjdk-7-jre

接頭辞 sudo必要に応じてます。

Fedora、Oracle Linux、Red Hat

適切なパッケージをインストール/アップグレードする:

yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel

java-1.7.0-openjdkパッケージには、ちょうどJavaランタイム環境が含まれています。Javaプログラムを開発する場合は、java-1.7.0-openjdk-develパッケージをインストールします。

BSD

OpenJDK 7パッケージは、openjdk7と呼ばれるFreeBSD Portsコレクションにありますとおそらく再設定が必要です。

参照:OpenJDK wiki page

ウィンドウズ

Oracleサイトから適切なJava SE Development Kitライブラリをインストールするか、インストールしてください

ジェンキンス

Jenkinsでこの問題が発生している場合は、以下を参照してください。

ただし、適切なバージョンのJava(新しい)を選択するとupdate-alternatives機能します。


Clouderaを使用してクラスターにSparkサービスを追加した後、ホストでspark2-shellを使用しようとすると、この回答が役に立ちました。
2017年

12

Antスクリプトを使用してアプリケーションをビルドしているときにも、同じ問題に直面しました。

私はアプリケーション開発にEclipseを使用し、プロジェクトのビルドプロパティでコンパイラのバージョンを変更しました。しかし、それは私にはうまくいきませんでした。その後、Antスクリプトでコンパイラバージョンを提供できることがわかりました。

JavaファイルをコンパイルするセクションでAntスクリプトを変更しました。

<target name="build-java" depends="prepare-build">
    <echo message="Compiling java files"/>
    <javac ....
           target="1.5"...
    </javac>
</target>

これは、サポートされていない大きなマイナーな問題を解決するのに役立ちました。



12

1.7で書かれたプロジェクトで同じ問題が発生し、1.6で実行しようとしました。

Eclipseでの私のソリューション:

  • プロジェクトのプロパティを右クリック-> Javaビルドパス->ライブラリ

  • JREシステムライブラリを選択し、右側の[ 編集 ]をクリックして、ターゲットJREを選択します。

  • 次に、左側のJavaコンパイラに移動し、コンパイラのコンプライアンスレベルをターゲットに変更します。

それでうまくいきました。


11

何人かが他で答えたように、Javaプログラムは、コンパイルされたバージョンよりも古いバージョンのJavaで実行されています。下位互換性のために「クロスコンパイル」する必要があります。言い換えると、ソースとターゲットのJavaバージョン間に不一致があります。

Eclipseメニューのオプションを変更しても、元のポスターには答えません。OpenJDK javacバージョン1.7では、パラメーター-sourceとを使用すると-target、1.6にクロスコンパイルできます。さらに、コンパイル時にターゲットバージョン(つまり、古いバージョン)のrt.jarファイルを提供できます。実際に1.6 JREをインストールする場合は、そのインストールをポイントできます(たとえば、Ubuntuの/usr/lib/jvm/java-6-openjdk-i386/jre/lib/rt.jar、/usr/jdk/jdk1)。 6.0_60 / jre / lib / rt.jar(SunOSの場合)申し訳ありませんが、Windowsシステムのどこにあるかわかりません)。そのようです:

javac -source 1.6 -target 1.6 -bootclasspath /usr/lib/jvm/java-6-openjdk-i386/jre/lib/rt.jar HelloWorld.java

インターネットからrt.jarをダウンロードしてポイントするだけのようです。ただし、これはあまりエレガントではありません。

javac -source 1.6 -target 1.6 -bootclasspath ./rt.jar HelloWorld.java

10

これに基づいて...

J2SE 8 = 52
J2SE 7 = 51
J2SE 6.0 = 50
J2SE 5.0 = 49
JDK 1.4 = 48
JDK 1.3 = 47
JDK 1.2 = 46
JDK 1.1 = 45

Eclipseで、パッケージエクスプローラーのプロジェクトを右クリックします。

ビルドパス ->ビルドパスの構成

下:

Javaビルド・パス - > ライブラリ - > ライブラリを追加 - > [ JREシステム・ライブラリー - > インストール済みのJRE - > 検索

検索の完了後に使用可能なリストからライブラリを選択して、必要なJREを追加します。


10
  • Mavenを使用する場合は、Javaコンパイルレベルを設定します。コマンドラインを開き、java -versionコンパイルレベルを記述します。

    ここに画像の説明を入力してください

  • IntelliJ IDEAを使用する場合は、プロジェクト→ ファイル設定ビルド実行デプロイメントコンパイラJavaコンパイラを選択します。次に、この画像のようにバイトコードを1.7に変更します。

    ここに画像の説明を入力してください


pomを変更した後、Mavenのクリーンインストールも行う必要がありました。
Joe Borysko

10

Mavenの使用中にこの問題が発生した場合は、プラグインのMavenコンパイラーを使用してコードをコンパイルできます。

 <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
       .....

更新:JDK 8を使用している場合は、sourceおよびtargetに設定し1.8ます。


クロスcompilteにプラグインを使用する方法についてのスニペットではなく、リンクを開く/訪問のために非常に良いでしょう
coding_idiot

8

EclipseからAntを実行すると同じエラーメッセージが表示されましたが、ここで説明した他の解決策では問題が解決しませんでした。面白いことに、WindowsコマンドラインからAntを実行すると問題なく動作するため、Eclipse内の構成の問題である必要がありました。

Eclipseでは、Antを実行する環境を指定でき、これはJDKではなくJREとして設定されていることがわかりました。

  • 実行:実行->外部ツール->外部ツールの構成...
  • プロジェクトのAnt build.xmlを選択します(複数のプロジェクトがある場合)。
  • タブ「JRE」をアクティブにする
  • ここでは「個別のJRE:jre6」が選択されました。これを1.6または1.7シリーズのJDKに変更すると、エラーは発生しなくなりました。

8

どうすれば修正できますか?

このエラーは、クラスコードの実行に使用されているJREが、使用されているJavaのバージョンを認識しないことを意味します。通常、クラスファイルを生成した(つまり、コンパイルした)Javaのバージョンが新しいためです。

それを修正するには、次のいずれかを行うことができます

a)Javaソースを、それを実行するために使用されるのと同じ、またはより古いバージョンのJavaコンパイラーでコンパイルします。つまり、適切なJDKをインストールします。

b)新しいバージョンのJavaコンパイラを使用してJavaソースをコンパイルしますが、互換モードです。つまり、-targetパラメータをます。

c)コンパイルしたクラスを、クラスのコンパイルに使用したJDKと同じ、またはそれより新しいバージョンのJREで実行します。

javac -versionコンパイラとjava -versionランタイムの現在使用しているバージョンを確認でき ます。

JDKをインストールし、PATH変数をJREではなくJDKに設定する必要がありますか?

コンパイルについては、確かに、必要な特定のJDKをインストールして構成します。

ランタイムには、JDKまたはスタンドアロンのJREに付属しているものを使用できますが、それに関係なく、適切なバージョンがインストールされていることと、予期しないことがないようにPATHを構成していることを確認してください。

JREまたはJDKのPATH変数の違いは何ですか?

PATH環境変数は、入力したコマンドを探す場所をコマンドシェルに指示します。と入力するjavaと、コマンドシェルインタープリターは、PATH変数で指定されたすべての場所を左から右に調べて、java実行する適切なランタイム実行可能ファイルを見つけます。Javaの複数のバージョンがインストールされている場合-つまり、java、PATH変数で指定された複数の場所に実行可能ファイルがある場合、左から右に行くときに最初に遭遇するものが実行されます。

コンパイラコマンドはjavac、JDKにのみ付属しています。ランタイムコマンドはjava、JDKに付属しており、JREにあります。

1つのバージョン(51.0 = Java 7)がjavacインストールされており、同じバージョンがjavaインストールされている可能性がありますが、以前のバージョンの別のバージョンがjavaPATHの前に表示されているため、予期したバージョンの代わりに呼び出されています。


7

上位バージョンのJDKを使用してコンパイルし、下位バージョンのJDK / JREから実行しようとしました。

これを確認するには、バージョン情報を確認します。

javac -version

java -version

それらは異なり、javacのバージョン番号は高くなります。

これを回避するには、JDKバージョンのjavaを使用して実行するか、同じように動作する新しいJRE / JDKがある場合に実行します。

which javacたとえば、場所がわかります/usr/bin/javac。を使用して直接実行するだけ/usr/bin/java <program>です。

または、永続的なソリューションとして環境変数を設定できます。


6

Java 6に戻り、以前にJava 7でコンパイルされたクラスを実行しようとしたときにこの問題がありました。私に有効だったのは、[設定]> [Java]> [コンパイラ]->コンプライアンスレベルを1.6に設定し、重要な「プロジェクト設定を構成する」でした。


6

今日、このエラーメッセージはUbuntu 12.04.2 LTS(Precise Pangolin)上のTomcat 7に表示されました。

/var/log/tomcat7/localhost.2014-04-08.log:2014年
4月8日9:00:55 org.apache.catalina.core.StandardContext filterStart
SEVERE:フィルター開始struts2
java.lang.UnsupportedClassVersionErrorの例外:コントローラー/ ReqAccept:サポートされていないmajor.minorバージョン51.0(クラスコントローラーをロードできません。ReqAccept)

Strutsのアプリケーションは、Java 7でコンパイルされています。

結局のところ、誰かが「service tomcat [stop / start]」を使用してTomcat 7を再起動しました

$ ps -ef | grep java
tomcat7 31783 1 32 20:13?00:00:03 / usr / lib / jvm / default-java / bin / java ...
$ / usr / lib / jvm / default-java / bin / java -version
java version "1.6.0_27"

これにより、「サポートされていないmajor.minorバージョン51.0」エラーが発生します。

「/etc/init.d/tomcat7 [stop / start]」を使用してTomcat 7を再起動すると、問題が解決しました。

$ ps -ef | grep java
tomcat7 31886 1 80 20:24?00:00:10 /usr/local/java/jdk1.7.0_15/bin/java
$ /usr/local/java/jdk1.7.0_15/bin/java -version
java version "1.7.0_15"


6

解決しました。私が走った:

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

エラーは誤解を招くものですUnsupported major.minor version 51.0。これにより、バージョン51(Java 7)はサポートされていないように見えます。また、Java 6を使用する必要があります。

エラーは次のとおりでした。

現在のJavaバージョン50はサポートされていません。代わりにJavaバージョン7(51:0以降)を使用してください。`


6

Javaファイルが、実行しようとしているバージョン(実行時のバージョンが低い)とは異なるバージョン(コンパイラーの高いバージョン)でコンパイルされています。

下位バージョンでコンパイルされたクラスは、上位バージョンで実行されることが予想されることは基本的に理解されています。しかし、その逆(より高いコンパイラバージョンでコンパイルされ、より低いランタイムバージョンで実行しようとする)がまったく不可能になる場合があります。

したがって、プログラムを実行しようとすると、このエラーが表示されます。サポートされていないmajor.minorバージョンxx

Q: Java 7でアプリケーションを作成しましたが、ユーザーがそれを実行しようとすると、Unsupported major.minorバージョン51.0エラーが発生します。これはどういう意味ですか、どうすればよいですか?

A: Java 7でjavacを使用してアプリケーションをコンパイルする場合、結果のクラスファイルには51.0のバージョン番号が付けられます。7より前のバージョンのJavaはこの番号を認識しないため、ユーザーはアプリケーションを実行する前にJava 7にアップグレードする必要があります。Java 7 APIを使用していない場合は、javac -target 1.6を使用してアプリケーションをコンパイルし、1.6互換のクラスファイルを作成してみてください。アプリケーションがwebstartを使用してデプロイされている場合、必要な最小バージョンを指定できます。詳細については、Java Web StartとJNLPに関するドキュメントをここで参照してください。この問題は、デスクトップに現在Java 6をインストールしているエンドユーザーに対してJava 7への自動更新をトリガーすると解消されます。このスケジュールはまだ決定されていません。開発者に、コードとJDK 7の間の問題を最初に解決する時間を与えたいと考えています。

(ソース:oracle.com。)


5

Mac OS XIは、JAVA_HOME変数を設定することでこの問題を解決できました。

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home

4

最初に、いくつかの基本を理解しましょう...

JREはNetBeans / Eclipseのコンポーネントですライブラリ、JVM、Javaプラグイン、Java Web Startを提供する / standaloneのです。コンパイラやデバッガは提供していません。

JDKは、コンパイラーとデバッガーとともにJREのスーパーセットです。

したがって、デフォルトのライブラリをJDKではなくJREとして使用している場合、データをインポートするのは楽しいことですが、コンパイルできません。

代わりに、パスをJDKに設定します(私はNetBeansを使用し、netbeans / etc / netbeans.confのnetbeans.confを使用してパスを設定し、パスを変更します)。


3

ユニットテストを実行するために、コマンドラインからプロジェクトでMavenコンパイルを実行する必要があるという問題がありました。テストクラスに変更を加え、Eclipseに自動的に再コンパイルさせた場合、「Unsupported major.minor version 51.0」エラーが発生しました。

私はJDK6とJDK7の両方をインストールしていますが、すべてのJRE設定はpomとEclipseのプロジェクトプロパティページの両方で1.6を指しています。Maven Update Projectの量や更新によって問題が解決することはありません。

最後に、プロジェクトを閉じて再度開いてみましたが、これで問題が解決したようです。HTH



3
  • JDK 7.0.55をインストールし、Java for Eclipse for JDK 7.0.55を設定します。
  • ビルドパスJDK 7.0.55で構成することにより、JDK 7.0.55でプロジェクトをビルドします。
  • メニューによってJDK 7.0.55用のEclipseでコンパイラーを設定するのWindows - > 環境設定 - > Javaの - > コンパイラは、 - 1.7を選択してください。

3

答えは問題です:

スレッド「メイン」の例外java.lang.UnsupportedClassVersionError:edu / stevens / cs549 / dhts / main / LocalContext:Unsupported major.minor version 52.0

私も同じ問題を抱えていました。AWS ec2インスタンスでこの問題を抱えていて、どういうわけかここでこの質問にリダイレクトされた人のために。私はそれらについて答えています、そして私がそれをどのようにしたかを共有したいと思います。Amazon EC2インスタンスがJavaバージョン1.7を実行していて、Mavenを使用していてJava 1.8用に事前設定されているため、私のプロジェクトが互換性がない可能性があるため、問題が発生しました。だから私は新しいバージョンのJavaをインストールしました:

sudo yum -y install java-1.8.0

そして重要なステップは古いバージョンを削除することです:

sudo yum remove java-1.7.0-openjdk

新しいバージョンをインストールした後は、必ず削除してください。削除しないと、同じ古いバージョンが引き続き使用されます。私の場合は問題が解決することを願っています。

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