web-dev-qa-db-ja.com

サポートされていないmajor.minorバージョン52.0

ピクチャー:

Command Prompt showing versions バージョンを表示しているコマンドプロンプト

Picture of error エラーの写真

こんにちは。

import Java.applet.Applet;
import Java.awt.*;

public class Hello extends Applet {

    // Java applet to draw "Hello World"
    public void Paint (Graphics page) {
        page.drawString ("Hello World!", 50, 50);
    }
}

Hello.html

<HTML>
    <HEAD>
        <TITLE>HelloWorld Applet</TITLE>
    </HEAD>

    <BODY>
        <APPLET CODE="Hello.class" WIDTH=300 HEIGHT=150>
        </APPLET>
    </BODY>
</HTML>

エラー

Hello : Unsupported major.minor version 52.0

問題は何でしょうか。

570
user3397452

問題はJavaバージョンの不一致が原因です。 を参照する - Wikipedia Javaクラスリファレンス

  • Java SE 12 = 56(16進数0x38)
  • Java SE 11 = 55(16進数0x37)
  • 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

これらは割り当てられたメジャー番号です。サポートされていないmajor.minorバージョンに関するエラーはコンパイル時にランタイムの間に上位JDKと下位JDKを使用しているためです。

したがって、 'major.minor version 52.0'エラーはおそらくjarがJDK 1.8でコンパイルされたことが原因ですが、JDK 1.7環境を使用して実行しようとしています。報告される番号は必須番号であり、使用している番号ではありません。これを解決するには、JDKとJREが同じバージョンを指すようにしたほうがよいでしょう。

IntelliJ IDEAでは、

  1. Maven SettingsMavenインポート中に移動します。インポーターのJDKを1.8に設定します。
  2. Maven SettingsMavenランナーに移動します。 JREを1.8に設定します。
  3. メニューファイル*→プロジェクト構造SDKに進みます。 JDKホームパスが1.8に設定されていることを確認してください。

IntelliJ IDEAを再起動します。

IntelliJ IDEAを起動するJDKのバージョンを指示することで、もう1つの方法が役立ちます。

/ Applications/IntelliJ\IDEA\15\CE.app/Contents/Info.plistに移動し、JVMのバージョンを次のように置き換えます。

<key>JVMVersion</key>
<string>1.8*</string>
545
Aks

この問題を解決するsmart方法は最新のSDKを使用してコンパイルし、コンパイル時に クロスコンパイルオプション を使用することです。オプション完全に正しくを使用するには、ターゲットバージョンのJRE(ではなくJDK)のrt.jarが必要です。

そのアプレットの性質を考えると、Java 1.1で使用するためにコンパイルできるように見えます。

88
Andrew Thompson

IDEでコンパイラ準拠レベルを1.7に戻す必要があります。

これはIDEの環境設定で行うことができます。たとえば、Eclipseでメニュー Windows 設定 に移動し、Javaを選択して展開します。次に Compiler を選択して準拠レベルを1.7に変更します。私はこれがそこからうまくいくと確信しています。

62
olammy

Javaの同じバージョンでアプリケーションを実行およびコンパイルする必要があります。

Eclipseを使用している場合、2つのことを行う必要があります。

  1. Eclipseで、 "Window> Preferences"をクリックし、表示されるウィンドウの左側の "Java" "Installed JREs"をクリックし、 "Add ..."をクリックして、JDKを含むフォルダーに移動します。 。

  2. プロジェクトを右クリックして、 "Properties"をクリックします。表示されるウィンドウで、左側にある "Java Compiler"およびチェック解除「Javaビルドパスの実行環境からのコンプライアンスを使用する」、これによりリストで選択できます "コンパイラのコンパイルレベル"前の手順で設定したものと同じバージョン。

51
ZAIRI Oussama

JavaのバージョンをJava 8にアップグレードする必要があります。

最新のJavaアーカイブをダウンロードする

公式のダウンロードページからJava SE Development Kit 8の最新リリースをダウンロードするか、次のコマンドを使ってシェルからダウンロードしてください。

64ビット用

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.Oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.Oracle.com/otn-pub/Java/jdk/8u51-b16/jdk-8u51-linux-x64.tar.gz"

 # tar xzf jdk-8u51-linux-x64.tar.gz

32ビット用

 # cd /opt/

 # wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.Oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.Oracle.com/otn-pub/Java/jdk/8u51-b16/jdk-8u51-linux-i586.tar.gz"

  # tar xzf jdk-8u51-linux-i586.tar.gz

注:上記のwgetコマンドがうまくいかない場合は、このビデオの例を見て、端末を使用してJavaソースアーカイブをダウンロードしてください。

代替手段でJavaをインストールする

アーカイブファイルを解凍したら、alternativesコマンドを使用してインストールします。 alternativesコマンドはchkconfigパッケージにあります。

 # cd /opt/jdk1.8.0_51/

 # alternatives --install /usr/bin/Java java /opt/jdk1.8.0_51/bin/Java 2

 # alternatives --config Java

これで、Java 8がシステムに正常にインストールされました。代替手段を使用してjavacとjarコマンドのパスを設定することもお勧めします。

 # alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_51/bin/jar 2

 # alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_51/bin/javac 2

 # alternatives --set jar /opt/jdk1.8.0_51/bin/jar

 # alternatives --set javac /opt/jdk1.8.0_51/bin/javac

インストールされているJavaのバージョンを確認する

次のコマンドを使用して、インストールされているJavaのバージョンを確認します。

root@tecadmin ~# Java -version

Java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

環境変数の設定

ほとんどのJavaベースのアプリケーションは、動作するために環境変数を使用します。以下のコマンドを使用してJava環境変数を設定します。

Java_HOME変数の設定

# export Java_HOME=/opt/jdk1.8.0_51
Setup JRE_HOME Variable

# export JRE_HOME=$Java_HOME/jre
Setup PATH Variable

# export PATH=$Java_HOME/bin:$JRE_HOME/bin:$PATH

PATH変数を変更すると、新しいJava binフォルダーが最初に配置されるため、パス内の既存のJava/binはすべて上書きされます。パスに2つのJava/binフォルダを残すのは少しずさんなので、それらを別々の作業として片付けておくことをお勧めします。

また、システム起動時の自動ロードのために、上記のすべての環境変数を/etc/environmentファイルに入れてください。

25
Adi

私は同じ問題を抱えていました... JDKとプラグインのバージョンの衝突。

最新の1.8を使ってコンパイルしたところ、そのメッセージが現れ始めました。だから私はJRE 7( http://www.Oracle.com/technetwork/Java/javase/downloads/server-jre7-downloads-1931105.html )を探してインストールしました。再び...今同じコンピュータで1.8と1.7。

NetBeansを使用し、コンパイルし、バージョン1.7をターゲットにして、私の問題を解決しました。

22
Analyst

Android Studioに問題があり、Android Nをインストールした場合は、Androidのレンダリングバージョンを古いバージョンに変更すると、問題は解消されます。

Enter image description here

19
Ivo Stoyanov

NetBeans IDEを使用している場合は、プロジェクトを右クリックして Properties を選択し、 sources に移動すると、Source/Binary Formatを低いJDKバージョンに変更できます。

Enter image description here

17
Eduardo Dennis

サポートされていないmajor.minorバージョン52.0は、Java 1.8コンパイラを使用してコンパイルされたクラスをより低いJREバージョンに実行しようとしているときに発生します。 JRE 1.7またはJRE 1.6このエラーを修正する最も簡単な方法は最新のJavaリリース、すなわちJava 8をインストールしてあなたのプログラムを実行することです。

続きを読む: http://javarevisited.blogspot.com/2015/05/fixing-unsupported-majorminor-version.html#ixzz4AVD4Evgv

13

プロジェクトをJavaのhigher version(jdk 1.8など)でコンパイルしてから、lower version(jdk 1.7など)で実行すると発生します。

プロジェクトパスにJRE-1.7ライブラリがある場合は、

1. プロジェクト を右クリック

2. プロパティ に移動します

3.選択 プロジェクトファセット

4.JREを1.7行に並べて、 version (1.7など)を選択します。

5. 適用 をクリックして、プロジェクトを実行します。

11
Prateek Joshi

私は以下の解決策を使って同じ問題を解決することができました。

私のプロジェクトでは、Java 8で作成されたJARファイルを追加しました。そして私のプロジェクトはJRE 7を参照していました。プロジェクトJREを8に変更したとき、私の問題は解決しました。

ステップ:

Eclipseでは、プロジェクトエクスプローラでプロジェクト名を右クリック→ビルドパス→ライブラリ→JREバージョンをクリック→編集インストール済みJRE→追加→Standerd VM→JREホームクリックパスを選択します(パスはlocalePath\Java\jdk1.8.0_25\jreである必要があります)→名前を入力→保存→プロジェクトに同じJREを選択→完了→ OK。プロジェクトを1回更新/ビルドします。→Javaファイルを実行してみます。それはうまくいくはずです。

10
user3181500

私は私の問題を解決するためにJREの古いバージョンを削除し、JRE 8をインストールしました。

10
mboy

Java 1.7と1.8をインストールしました(SBT 2.4ではJava 1.8が必要です)。私のプロジェクトはJava 1.8にリンクされていましたが、Java_HOME環境変数を1.8に変更する必要がありました。最後に、問題は解決しました。

9
Lior Ohana

Eclipseを使用している場合は、メニューの Project Properties Javaビルドパス libraries JREシステムライブラリを確認してください。 (プロジェクトの画像に示されているように)プロジェクトの要件に一致します。

Enter image description here

6
kalan

問題を解決するために必要なことは、コンパイルと実行の両方でJavaのバージョンが同じであることを確認することだけです。どのツールやIDEを使用していても関係ありません。

6
Nixit Patel

Linuxを使用していて、異なるバージョンのJavaがインストールされている場合は、次のコマンドを使用してください。

Sudo update-alternatives --config Java

これにより、システムにインストールされているJavaのバージョンを素早く切り替えることができます。 Java 8を選ぶことで、私はあなたの問題を解決します。

5
Masoud

これは私が新しいJava 1.8をインストールしたときに私に起こりましたが、古いコマンドラインインタプリタを開いたままにしました。

プロジェクトはすでにJava 1.8で構築されていましたが、古いパスを持ち、Java 1.7でアプリケーションを実行し続けました。

5
Val

JDKのバージョンが正しいかこのエラーを引き起こすかもしれないもう一つの理由はあなたのAndroid Studioが低いバージョンであるがあなたの Gradle バージョンが高すぎるということです。 Upgrade your IDE to a newer versionはこれを助けるかもしれません。

4
Kyeson

Eclipse v4.4(Luna)を使用していて、上記のステップをすべて完了している場合は、 実行構成 の設定を確認してください。

このエラーを引き起こす可能性があるいくつかの可能性があります。根本的な原因は、プロジェクトの不一致がJDK 1.8/JRE 8でのコンパイルを必要とするのに対し、環境コンパイラーはJDK 1.7/JRE 7であることです。

私のブログ投稿 をチェックして、すべての設定が正しいことを確認できます。

3
ct.tan

あなたのAndorraバージョンをJDK 1.8にアップグレードしてください。

これは、コンパイラがJavaバージョン8を探していて、Javaバージョン7があるというバージョンの不一致です。

バージョン7でアプリビルドをバージョン8で実行することはできますが、その逆はできません。上位レベルになると、以前のバージョンではなく、より多くの機能や機能強化が組み込まれたバージョンになります。

このリンクからJDKバージョンをダウンロードしてください

そしてこれにあなたのJDKパスを設定します。

3

JDK 1.8.0ではなくJDK 1.7.0を使用する必要があります。

それを確認するには、お使いのコンピュータ上のJDK 1.8.0を削除する必要があります。

あなたがMacを使用している場合、あなたは削除する必要があります:

/Library/Java/JavaVirtualMachines/jdk.jdk

/Library/PreferencePanes/JavaControlPanel.prefPane

/ライブラリ/インターネットプラグイン/ JavaAppletPlugin.plugin

その後、JDK 1.7.0を再インストールする必要があります。そうすれば、.jarファイルの生成に成功します。

3
ClaireWang

私は Mac OS X v10.9 (Mavericks)のEclipseでこの問題に遭遇した。私はStack Overflowで多くの答えを試してみました...最後に、丸一日の後にI *新しいバージョンのAndroid SDKをインストールしました(そしてEclipseの更新、menu ProjectPropertiesAndroidは新しいパスを使用します)*

私はSDKの更新を入手しなければなりませんでしたが、私が作業していなかったAPI(WearやTVのような)を避けて、必要と思われるそれらの更新をダウンロードするだけでした..そしてそれがうまくいきました。どうやら、私は途中でどこかで私のSDKを破損させたようです。

ところで..私は自分のワークスペース内の1つのプロジェクトでエラーが再発生するのを見ましたが、それは私が使っていなかったappcompat-7のインポートに関連しているようでした。そのプロジェクトを実行した後、これまでのところ問題が再浮上するのを見たことがありません。

1
Gene Bo

http://Java.com/en/download/ にアクセスして、JREのバージョンを更新してください。

1
Bikey

これらの答えのどれも私を助けませんでした、しかし私は解決策を見つけました。
MavenでビルドされたWildfly 8.2で使用されているWebプロジェクトがあり、ソースとターゲットがmaven-compiler-pluginで1.8に設定され、EclipseとMavenの設定はすべてJava 1.8に設定されていました。問題は、Wildfly 8.2がJava 1.8を処理できないことです。そのため、すべてを1.7に設定する必要があり、それは機能しました。

0
Bevor

これを追加したいだけです。私は今日この問題を抱えていました。私のプロジェクトの設定を調整し、再構築し、そして同じ問題。自分のプロジェクト(Eclipse)の設定を変更すると、自分のプロジェクトが依存するプロジェクトも再コンパイルされることになると(誤って)想定されていました。依存関係ツリーの上にあるすべてのプロジェクトの設定を調整することで問題は解決しました。

0
dexter

IntelliJ IDEA を使用している場合は、プロジェクト構造(Ctrl + Alt + Shift + SプロジェクトのJDKを変更できます。

0
Esmaeil Mirzaee