web-dev-qa-db-ja.com

Java.lang.UnsupportedClassVersionError:unsupported major.minorのバージョンを修正する方法

私は 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. JREまたはJDKのPATH変数の違いは何ですか?
1464
ERJAN

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

報告されたメジャー番号は:

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コンパイラにtargetパラメータを指定して、コンパイラに以前のバージョンのJavaと互換性のあるコードを作成するように指示します。 

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

javac -target 1.4 HelloWorld.Java

新しいバージョンのJavaコンパイラでは、ブートストラップクラスパスが設定されていないという警告が表示される可能性があります。このエラーに関するより多くの情報はブログ記事で利用可能ですbootclasspathなしで古いソースを設定するための新しいjavac警告

1843
Juha Palomäki

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

342
Vivek Kumar Ray

Eclipseでは、メニューコマンド Window - > Preferences - > Java - > Compiler に行き、次に「Compiler Compliance level」を1.6に設定しました。

114
Cacovsky

心配しないで、解決しました。

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

JRE 6 - > JDK 6

JRE 7 - > JDK 7

等々。

58
ERJAN

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

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

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

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

    javac FileName.Java

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

41
Brad Parks

コードがコンパイルされたバージョンをサポートしないJavaバージョンでプログラムを実行しようとしています。 それで基本的にあなたはより高いバージョンであなたのコードをコンパイルしそしてより低いバージョンを使ってそれを実行しようとしなければならない。

あなたが着いているように

Unsupported major.minor version 51.0

51.0 J2SE 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を常に指定できます。

22
Aniket Thakur

私はMacでも同じような状況にあり、次のようなプロセスが私のために働いた。

端末で、次のように入力します。

vi ~/.profile

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

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

1.7.0_25のようにversionはあなたのコンピュータ上のものです。

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

source ~/.profile 

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

Java -version 

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

.profileファイルは隠しファイルです。これはオプションのファイルで、プロファイルファイルを持つユーザーがログインしたときにどのコマンドを実行するかをシステムに指示します。ログイン手続き中に実行されます。

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

18
Tony

Eclipseのメニューで ウィンドウ - > 設定 - > Java - > コンパイラ "プロジェクト固有の設定"をチェックしてください。

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

16
Andreas L.

最も一般的な問題は、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 Runtime Environmentだけが含まれています。 Javaプログラムを開発したい場合はJava-1.7.0-openjdk-develパッケージをインストールしてください。

BSD

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

OpenJDK Wikiページ を参照してください。

Windows

Oracleサイト から適切なJava SE Development Kitライブラリをインストールするか、またはインストールするだけです。 

ジェンキンス

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

ただし、update-alternativesを使用して適切なバージョンのJava(新しい)を選択しても問題ありません。

14
kenorb

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

14
Rio

私は自分のアプリケーションを構築するために Ant スクリプトを使って作業していたときに同じ問題に直面しました。

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

私はそれがJavaファイルをコンパイルするセクションでAntスクリプトを修正しました。

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

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

12
Mandar Pandit

私は1.7で書かれたプロジェクトと同じ問題を抱えて1.6で実行しようとしました。

Eclipseでの私の解決策:

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

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

  • 左側の Java Compiler に行き、 Compilerの準拠レベル をターゲットに変更します。 

それは私のために働いた。

12
Ben

_ jdk _ 1.7をインストールしたとき、問題は解決しました。

12
user3168034

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

Eclipseのメニューのオプションを変更しても、元の投稿者は答えません。彼はEclipseを使用していないと述べています。 OpenJDK javacバージョン1.7では、コンパイル時にパラメータ-sourceおよび-targetを使用し(さらに古いバージョンの) rt.jar - ファイルを指定すると、1.6用にクロスコンパイルできます。実際に1.6 JREをインストールする場合は、そのインストール(たとえば、Ubuntuの/usr/lib/jvm/Java-6-openjdk-i386/jre/lib/rt.jar、/ usr/jdk/jdk1)を指すことができます。 SunOS上の6.0_60/jre/lib/rt.jarどうやら申し訳ありませんが、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
11
Mace Ojala

これに基づいて...

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
Adit Ya
  • Mavenを使用している場合は、Javaのコンパイルレベルを設定してください。コマンドラインを開き、コンパイルレベルにJava -versionを書きます。

    Enter image description here

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

    Enter image description here

10
ethemsulan

Maven を使用中にこの問題に直面している場合は、プラグイン Maven Compiler を使用してコードをクロスコンパイルできます。

 <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およびtarget1.8に設定します。

9
Thamme Gowda

どうやって直すの?

このエラーは、クラスコードの実行に使用されている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の複数のバージョンがインストールされている場合、つまりPATH変数で指定された複数の場所にJava実行可能ファイルがある場合は、左から右に移動したときに最初に見つかったものが実行されます。

コンパイラー・コマンドはjavacであり、JDKにのみ付属しています。実行時コマンドはJavaであり、JDKに付属しており、JREにあります。

あるバージョン(51.0 = Java 7)のjavacがインストールされていて、同じバージョンのJavaもインストールされている可能性がありますが、別の以前のバージョンのJavaがPATHの前半に表示され、あなたが期待するもの。

8
Vihung

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

Eclipseの下ではAntが実行されるべき環境を指定でき、これはJDKの代わりにJREとして設定されていることがわかりました。

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

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

これを確認するには、バージョン情報を参照してください。

javac -version

Java -version

それらは異なり、javacはより高いバージョン番号を持ちます。

これを回避するには、JDKバージョンのJavaを使用するか、またはそれよりも新しいJRE/JDKがある場合は実行します。

which javacは場所を教えてくれます、例えば/usr/bin/javac/usr/bin/Java <program>を使って直接実行するだけです。

あるいは、環境変数を恒久的な解決策として設定することもできます。

7
L Lawliet

私はそれを解決しました。私は走った:

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
Siddharth

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

それより低いバージョンでコンパイルされたクラスはそれ以降のより高いバージョンで実行されることが期待されていることは基本的な理解です。しかし、逆のこと(より高いコンパイラバージョンでコンパイルされ、より低いランタイムバージョンでそれを実行しようとすること)は、時には全く不可能です。

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

Q: 私はJava 7でアプリケーションを作成しました、しかし私のユーザーがそれを実行しようとすると彼らはUnsupported major.minorバージョン51.0エラーを受け取ります。これは何を意味し、私はそれについて何ができますか?

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

(出典: Oracle.com

6
Manohar

私がJava 6に戻って、以前にJava 7でコンパイルされたクラスを実行しようとしたときにこの問題を抱えていました。 

6
user3534268

今日、このエラーメッセージは Tomcat 7 on Ubuntu 12.04.2 LTS (Precise Pangolin)にありました:

/var/log/Tomcat7/localhost.2014-04-08.log: 
2014年4月8日9:00:55 AM org.Apache.catalina.core.StandardContext filterStart 
重大:フィルターstruts2を開始する例外 
Java.lang.UnsupportedClassVersionError:controller/ReqAccept:サポートされていないmajor.minorバージョン51.0(クラスcontroller.ReqAcceptを読み込めない)

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

結局、誰かがTomcat 7を再起動するために "service Tomcat [stop/start]"を使っています。

$ ps -ef | grep Java
Tomcat 7 31783 1 32 20:13 00:00:03/usr/lib/jvm /デフォルトJava/bin/Java ...
$/usr/lib/jvm /デフォルトJava/bin/Java -version
Javaのバージョン "1.6.0_27"

これにより、 "Unsupported major.minor version 51.0"エラーが発生します。

Tomcat 7を再起動するのに "/etc/init.d/Tomcat7 [stop/start]"を使ったところ、問題は解決しました。

$ ps -ef | grep Java
Tomcat 7 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のバージョン "1.7.0_15"

6
oraclesoon

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

export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
5
TomTom

まず基本を正しく理解しましょう。

JREは NetBeans / Eclipse /スタンドアロンのコンポーネントであり、ライブラリ、JVM、Javaプラグイン、およびJava Web Startを提供します。コンパイラやデバッガは提供されていません。

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

あなたのJDKの代わりにJREとしてあなたのデフォルトのライブラリがあるとき、あなたはものをインポートする素晴らしい時間を持つことになるでしょう、しかしそれはコンパイルされません。

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

4
  • JDK 7.0.55をインストールし、Javaを Eclipse JDK 7.0.55に設定します。
  • ビルドパスJDK 7.0.55を設定して、JDK 7.0.55でプロジェクトをビルドします。
  • EclipseでJDK 7.0.55用のコンパイラをメニューから設定しますWindows - > Preferences - > Java - > Compiler - 1.7を選択します。
3
siddmuk2005

私の場合、問題はサーバーのランタイム構成にあります。

Server Runtime Environment

JREが必要なバージョンであることを確認してください。

enter image description here

プロジェクトはバージョン1.7で、サーバーJREは、適切に起動した適切なJavaバージョンに変更した後1.6に設定されました。

3
Mike-Bell

私は自分のユニットテストを実行するためにコマンドラインから自分のプロジェクトでMavenコンパイルを実行しなければならなかったという問題を抱えていました。テストクラスを変更してEclipseに自動的に再コンパイルさせると、 "Unsupported major.minor version 51.0"エラーが発生しました。

私はJDK6とJDK7の両方をインストールしていますが、私のJRE設定はすべて、pomとEclipseのプロジェクトプロパティページの両方で1.6を指していました。これを解決するためのMavenアップデートプロジェクトやリフレッシュはありません。

最後に、私はプロジェクトを閉じてそれを再び開くことを試みました、そしてこれはそれを修正したようです! HTH

3
Matthew Wise

JavaクラスをJDK 7でコンパイルし、JDK 6でも同じクラスを実行しようとしています。

3
Sagar Varpe

Java 9 -target--releaseに置き換えられているため。

Java 11までは、--releaseの使用可能な番号は67891011です。
そして、あなたは、将来のバージョンが1213であると推測できます。

古いターゲットjvm用にコンパイルするには、javac --release 7 Tmp.Javaを使用します//これにより、jvm> = 7で実行できる.classファイルが生成されます

その後、次の方法でターゲットバージョンを確認できます。

javap -v Tmp | grep version

出力では、major versionはターゲットjvmバージョンを識別します。

  • 55-> Java 11
  • 54-> Java 10
  • 53-> Java 9
  • 52-> Java 8
  • 51-> Java 7
  • 50-> Java 6

将来のバージョンはより古いバージョンを削除します:

  • Java 11の時点で、メジャーバージョン<= 49(Javaバージョン<= 5)はサポートされていません。
  • Java 12および13の時点では、メジャーバージョン<= 50(Javaバージョン<= 6)はサポートされていません。

次のコマンドを使用して、現在のjavacでサポートされているターゲットバージョンを確認できます。
javac -help | grep releases

2
Eric Wang

答えは問題です。

スレッド "main"の例外Java.lang.UnsupportedClassVersionError:edu/stevens/cs549/dhts/main/LocalContext:未サポートmajor.minorバージョン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

新しいバージョンをインストールした後にそれを削除することを忘れないでください、そうでなければそれは継続的に同じ古いバージョンを使用しているでしょう、そして私はそれがあなたの問題を解決することを願っています。

私は同じ問題に直面しました、そして私は Linux でそれを修正しました。

あなたの$Java_HOMEをチェックしてください

APKをコンパイル/ビルドするにはJDK 1.8が必要です。

Java JDK 1.8をインストールしてJava_HOMEを変更する

~/.bashrcを編集し、JDK 1.8パスをJava_HOMEとして追加します。

export Java_HOME=/usr/lib/jvm/Java-8-Oracle/jre/

そしてsource ~/.bashrc

現在の端末ウィンドウ/タブを閉じて、パスを確認するために$Java_HOMEを実行します。

1
Mohammed Safeer

Homebrew がインストールされたMac OS Xでこれを修正するもう1つの方法は、次のとおりです。

brew install Caskroom/cask/Java
1
webtweakers

私は同じ状況にありましたが、上記のヒントのどれも助けにはなりませんでした:)私たちの環境では、TomcatをWindows上でサービスとして実行していました。 Java 1.7をインストールし、このバージョンにJava_HOMEをセットアップしました。もちろんソースはJava 1.7上に構築されました。それにもかかわらず、Tomcatは以前のバージョンのJVMを使用していると述べました。徹底的に分析した結果、WindowsにインストールされたTomcatサービスは依然としてJava 1.6を指すJava_HOMEの古い値を保持していることがわかりました。新しいTomcatサービスをインストールした後、すべてが解決されました。結論は次のとおりです。Javaバージョンを変更してTomcatをサービスとして実行する場合は、Tomcatサービスを再インストールする必要があります。

0
mariusz117

Grails プロジェクトのSpring Source Tool(STS)IDEでも同じ問題が発生しました。インストールされているJavaのバージョンとプロジェクトのJavaのバージョンが1.7であることを確認しました。その後、 GGTS.ini ファイルでJavaのバージョンが1.6に設定されていることがわかりました。

解決策:

-Dosgi.requiredJavaVersion = 1.6がに変更されました
- Dosgi.requiredJavaVersion = 1.7
-vmargsの前に、以下の2行を追加してください。
- vm
jdk1.7.0_21/jre/lib/AMD64/server/libjvm.so

問題が解決しました。ハッピーコーディング.

0
Bhuwan Gautam

2番目のプロジェクトがビルドパスに追加されている場合は、最初のプロジェクトと同じ コンパイラバージョン を使用してください。プロパティ - > Javaコンパイラ - >コンパイラ準拠レベル

0
Luigi04
  1. プロジェクトの[プロパティ]をクリックします。
  2. Javaビルドパスに行きます。
  3. ライブラリを追加をクリックします。
  4. JREシステムライブラリで[次へ]をクリックします。デフォルトで選択されていない場合は、必要なものを選択してください。
  5. 完了をクリックします。

これで終わりです!

0
AmazingDayToday

私はすべて試しました。 Tomcatを再インストールすると、ついにうまくいきました。これは私が再インストールする前に私がチェックしたものです。

環境変数がこのようになっていることを確認してください。 

$ echo $Java_HOME
C:\Program Files\Java\jdk1.7.0_51\
$ echo $JRE_HOME
C:\Program Files\Java\jdk1.7.0_51\jre\bin

EclipseがJava_HOMEに設定したものと同じjreを使用していることを確認してください(Java_HOMEが設定されていない場合はJRE_HOMEが表示されます)。 Window > Prefrences > Java > Installed JREs(チェックされたものがデフォルトのものです)

Tomcatファイル、特にcatalina.batまたはstartup.batに変更を加えた場合は、Tomcatに、Java_HOME C:\Program Files (x86)\Apache\apache-Tomcat-7.0.26\binに設定したものとは異なるバージョンのJavaを調べるように指示している可能性があります。

0
Philip Rego

javaの環境変数のバージョンを必ず確認してください。これは、Java_HOME(JDKパス)とJRE_HOME(JREパス)のバージョンの違いにすぎない可能性があります。

0

私にとっては、com/Sun/javadoc/Docletクラスでこのエラーが発生していました。ちょっと調べたところ、誤ってtools.jarをJava 8から自分のJava 7フォルダーにコピーしたことがわかりました。

Java 7のtools.jarを見つけてそれをフォルダに戻すことで私の問題は解決しました。だから試してみてください。

0
snowfi6916

これをpom.xmlファイルに追加します。

<project ....>
    <properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
</project>

1.7は、使用する予定のJavaのバージョンです。これは Maven compiler設定を上書きするので、ここからデバッグするのが良いでしょう。

0
George

Maven DependenciesがDeployment Assemblyにデプロイされていることを確認することで、この問題を解決しました。私の場合はそうではありませんでした。 

それを追加して問題を解決しました。

0
antonkronaj

私はOS X v10.11.5(El Capitan)を使っています、そして私はJava_HOMEを設定し、Mavenを通して "正しい" Javaバージョンを強制しようとしました。何も助けなかった。

アプリケーションの実行中にOS Xアカウントがログアウトされたときに問題が発生しました。再度ログインした後、OS Xはグレーアウトされた履歴で古いターミナルセッションを開きました。同じターミナルセッションを使用してプロジェクトをビルドしましたが、サポートされていないクラスバージョンエラーで失敗しました。

Mavenプロジェクトを掃除してもまったく役に立ちませんでした。

問題を解決するために、私は単に自動で開かれたターミナルウィンドウを閉じて、新しいものを使わなければなりませんでした。

0
lilalinux

私の場合、$ Java_HOMEと$ PATHのJavaのバージョンが異なるために問題が発生しました。

echo $Java_HOME
/usr/lib/jvm/Java-7-openjdk-AMD64/jre
echo $PATH
/opt/jdk/jdk1.8.0_151/bin:/usr/lib/jvm/Java-7-openjdk-AMD64/jre/bin:/usr/local/bin:/usr/bin:/bin

それらをJavaと同じバージョンに更新すると、問題はなくなりました。

export Java_HOME=/opt/jdk/jdk1.8.0_151
export PATH=$Java_HOME/bin:$PATH
0
nurb

ご存じのとおり、jdk(Java Development Kit)のbinディレクトリには環境変数Java_homeを入れるのが常に良い習慣です。

上記のあなたの問題を見ると、JREランタイム環境はJDkのスーパーセットライブラリで互換性のないクラスを探しているようです。このような問題を回避するために、JDKとJREまたはJboss(必要な場合)の完全なパッケージをOracleダウンロードソースから直接入手することをお勧めします。

0
Rahul Mishra

私は同じ問題を抱えていた、そして私は この解決策 でこの問題を解決した - /Mac。誰かに役立つことを願っています。これは、システムが新しいバージョンのJDKを認識していないため、古いJDKを指しているためです。

0
Dilip Rajkumar

以下のようにantを使用している場合は、build.xmlファイルでコンパイラの "target"を指定できます。

 <target name="compile" depends="init">
    <javac executable="${Java_HOME}\bin\javac" srcdir="${src.dir}" target="1.6" destdir="${classes.dir}" debug="true"
        deprecation="true" classpathref="compile.classpath" encoding="utf8">
        <include name="**/*.Java" />
    </javac>
</target>
0
StrongYoung