ピクチャー:
バージョンを表示しているコマンドプロンプト
エラーの写真
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);
}
}
<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
問題は何でしょうか。
問題はJavaバージョンの不一致が原因です。 を参照する - Wikipedia Javaクラスリファレンス :
これらは割り当てられたメジャー番号です。サポートされていないmajor.minorバージョンに関するエラーはコンパイル時にランタイムの間に上位JDKと下位JDKを使用しているためです。
したがって、 'major.minor version 52.0'エラーはおそらくjarがJDK 1.8でコンパイルされたことが原因ですが、JDK 1.7環境を使用して実行しようとしています。報告される番号は必須番号であり、使用している番号ではありません。これを解決するには、JDKとJREが同じバージョンを指すようにしたほうがよいでしょう。
IntelliJ IDEAでは、
IntelliJ IDEAを再起動します。
IntelliJ IDEAを起動するJDKのバージョンを指示することで、もう1つの方法が役立ちます。
/ Applications/IntelliJ\IDEA\15\CE.app/Contents/Info.plistに移動し、JVMのバージョンを次のように置き換えます。
<key>JVMVersion</key>
<string>1.8*</string>
この問題を解決するsmart方法は最新のSDKを使用してコンパイルし、コンパイル時に クロスコンパイルオプション を使用することです。オプション完全に正しくを使用するには、ターゲットバージョンのJRE(ではなくJDK)のrt.jar
が必要です。
そのアプレットの性質を考えると、Java 1.1で使用するためにコンパイルできるように見えます。
IDEでコンパイラ準拠レベルを1.7に戻す必要があります。
これはIDEの環境設定で行うことができます。たとえば、Eclipseでメニュー Windows → 設定 に移動し、Javaを選択して展開します。次に Compiler を選択して準拠レベルを1.7に変更します。私はこれがそこからうまくいくと確信しています。
Javaの同じバージョンでアプリケーションを実行およびコンパイルする必要があります。
Eclipseを使用している場合、2つのことを行う必要があります。
Eclipseで、 "Window> Preferences"をクリックし、表示されるウィンドウの左側の "Java"、 "Installed JREs"をクリックし、 "Add ..."をクリックして、JDKを含むフォルダーに移動します。 。
プロジェクトを右クリックして、 "Properties"をクリックします。表示されるウィンドウで、左側にある "Java Compiler"およびチェック解除「Javaビルドパスの実行環境からのコンプライアンスを使用する」、これによりリストで選択できます "コンパイラのコンパイルレベル"前の手順で設定したものと同じバージョン。
JavaのバージョンをJava 8にアップグレードする必要があります。
# 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
# 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ソースアーカイブをダウンロードしてください。
アーカイブファイルを解凍したら、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のバージョンを確認します。
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環境変数を設定します。
# 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
ファイルに入れてください。
私は同じ問題を抱えていました... 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をターゲットにして、私の問題を解決しました。
NetBeans IDEを使用している場合は、プロジェクトを右クリックして Properties を選択し、 sources に移動すると、Source/Binary Formatを低いJDKバージョンに変更できます。
サポートされていない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
プロジェクトを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. 適用 をクリックして、プロジェクトを実行します。
私は以下の解決策を使って同じ問題を解決することができました。
私のプロジェクトでは、Java 8で作成されたJARファイルを追加しました。そして私のプロジェクトはJRE 7を参照していました。プロジェクトJREを8に変更したとき、私の問題は解決しました。
ステップ:
Eclipseでは、プロジェクトエクスプローラでプロジェクト名を右クリック→ビルドパス→ライブラリ→JREバージョンをクリック→編集→インストール済みJRE→追加→Standerd VM→JREホームクリックパスを選択します(パスはlocalePath\Java\jdk1.8.0_25\jre
である必要があります)→名前を入力→保存→プロジェクトに同じJREを選択→完了→ OK。プロジェクトを1回更新/ビルドします。→Javaファイルを実行してみます。それはうまくいくはずです。
私は私の問題を解決するためにJREの古いバージョンを削除し、JRE 8をインストールしました。
Java 1.7と1.8をインストールしました(SBT 2.4ではJava 1.8が必要です)。私のプロジェクトはJava 1.8にリンクされていましたが、Java_HOME環境変数を1.8に変更する必要がありました。最後に、問題は解決しました。
問題を解決するために必要なことは、コンパイルと実行の両方でJavaのバージョンが同じであることを確認することだけです。どのツールやIDEを使用していても関係ありません。
Linuxを使用していて、異なるバージョンのJavaがインストールされている場合は、次のコマンドを使用してください。
Sudo update-alternatives --config Java
これにより、システムにインストールされているJavaのバージョンを素早く切り替えることができます。 Java 8を選ぶことで、私はあなたの問題を解決します。
これは私が新しいJava 1.8をインストールしたときに私に起こりましたが、古いコマンドラインインタプリタを開いたままにしました。
プロジェクトはすでにJava 1.8で構築されていましたが、古いパスを持ち、Java 1.7でアプリケーションを実行し続けました。
JDKのバージョンが正しいかこのエラーを引き起こすかもしれないもう一つの理由はあなたのAndroid Studioが低いバージョンであるがあなたの Gradle バージョンが高すぎるということです。 Upgrade your IDE to a newer version
はこれを助けるかもしれません。
Eclipse v4.4(Luna)を使用していて、上記のステップをすべて完了している場合は、 実行構成 の設定を確認してください。
このエラーを引き起こす可能性があるいくつかの可能性があります。根本的な原因は、プロジェクトの不一致がJDK 1.8/JRE 8でのコンパイルを必要とするのに対し、環境コンパイラーはJDK 1.7/JRE 7であることです。
私のブログ投稿 をチェックして、すべての設定が正しいことを確認できます。
あなたのAndorraバージョンをJDK 1.8にアップグレードしてください。
これは、コンパイラがJavaバージョン8を探していて、Javaバージョン7があるというバージョンの不一致です。
バージョン7でアプリビルドをバージョン8で実行することはできますが、その逆はできません。上位レベルになると、以前のバージョンではなく、より多くの機能や機能強化が組み込まれたバージョンになります。
そしてこれにあなたのJDKパスを設定します。
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ファイルの生成に成功します。
私は Mac OS X v10.9 (Mavericks)のEclipseでこの問題に遭遇した。私はStack Overflowで多くの答えを試してみました...最後に、丸一日の後にI *新しいバージョンのAndroid SDKをインストールしました(そしてEclipseの更新、menu Project→Properties →Androidは新しいパスを使用します)* 。
私はSDKの更新を入手しなければなりませんでしたが、私が作業していなかったAPI(WearやTVのような)を避けて、必要と思われるそれらの更新をダウンロードするだけでした..そしてそれがうまくいきました。どうやら、私は途中でどこかで私のSDKを破損させたようです。
ところで..私は自分のワークスペース内の1つのプロジェクトでエラーが再発生するのを見ましたが、それは私が使っていなかったappcompat-7のインポートに関連しているようでした。そのプロジェクトを実行した後、これまでのところ問題が再浮上するのを見たことがありません。
http://Java.com/en/download/ にアクセスして、JREのバージョンを更新してください。
これらの答えのどれも私を助けませんでした、しかし私は解決策を見つけました。
MavenでビルドされたWildfly 8.2で使用されているWebプロジェクトがあり、ソースとターゲットがmaven-compiler-pluginで1.8に設定され、EclipseとMavenの設定はすべてJava 1.8に設定されていました。問題は、Wildfly 8.2がJava 1.8を処理できないことです。そのため、すべてを1.7に設定する必要があり、それは機能しました。
これを追加したいだけです。私は今日この問題を抱えていました。私のプロジェクトの設定を調整し、再構築し、そして同じ問題。自分のプロジェクト(Eclipse)の設定を変更すると、自分のプロジェクトが依存するプロジェクトも再コンパイルされることになると(誤って)想定されていました。依存関係ツリーの上にあるすべてのプロジェクトの設定を調整することで問題は解決しました。
IntelliJ IDEA を使用している場合は、プロジェクト構造(Ctrl + Alt + Shift + SプロジェクトのJDKを変更できます。