2017-02-16 8 views
1

"サポートされていないmajor.minorバージョン52.0"というエラーは、javaコードがJava 8でコンパイルされていて以前のバージョンで実行しようとしたことを示しています。Elasticsearch:サポートされていないmajor.minorバージョン52.0

私はそれがsuggested JAVA_HOMEとPATHがJavaの正しいバージョンを指していることを知っています。 (apt-getを介してインストール)elasticsearchを実行しようとしたとき

[email protected] ~ $ java -version 
java version "1.8.0_102" 
Java(TM) SE Runtime Environment (build 1.8.0_102-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode) 
[email protected] ~ $ which java 
/home/me/bin/jdk1.8.0_102_64bit/bin/java 
[email protected] ~ $ echo $JAVA_HOME 
/home/me/bin/jdk1.8.0_102_64bit 

しかし、私はまだ、以下のエラーを取得:

私はすでに正しいバージョンに私のシステムを指している伝えることができることすべてから

[email protected] ~ $ sudo -i service elasticsearch start 
* Starting Elasticsearch Server 
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/bootstrap/Elasticsearch : Unsupported major.minor version 52.0 
    at java.lang.ClassLoader.defineClass1(Native Method) 
... 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 

編集:

(JAVA_HOMEなどの他の変数にconstrast中)PATH変数がリセットされますUbuntuのベースlinuxesに、sudoで、1 suggested solutionsudo envを使用して再度変数を設定することです:

[email protected] ~ $ sudo echo $JAVA_HOME 
/home/me/bin/jdk1.8.0_102_64bit 
[email protected] ~ $ sudo java -version 
java version "1.7.0_121" 
OpenJDK Runtime Environment (IcedTea 2.6.8) (7u121-2.6.8-1ubuntu0.14.04.1) 
OpenJDK 64-Bit Server VM (build 24.121-b00, mixed mode) 
[email protected] ~ $ sudo env PATH=$PATH java -version 
java version "1.8.0_102" 
Java(TM) SE Runtime Environment (build 1.8.0_102-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode) 

しかし、これは私の実際の問題(Elasticsearchを開始)には機能しません:

[email protected] ~ $ sudo env PATH=$PATH service elasticsearch start 
* Starting Elasticsearch Server 
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/bootstrap/Elasticsearch : Unsupported major.minor version 52.0 
    at java.lang.ClassLoader.defineClass1(Native Method) 
... 
+0

sudoを実行すると、期待していたものとは異なるJavaバージョンになることがあります。たとえば、スクリプト内でJavaバージョンを印刷してそこから取得できますか?スクリプト自体が別のJavaバージョンを定義している可能性がありますか?または他のいくつかのプロパティですか?私は 'java -version; ( '/ etc/init.d/elasticsearch') – vegaasen

+1

私はLinuxに精通していませんが、' sudo'コマンドは別のパス(またはJavaインストール)を持つ別のユーザで実行されるかもしれません。 ?それを見つけるために 'sudo java -version'のようなコマンドを実行することは可能ですか? – Seelenvirtuose

+0

私の質問が更新されました。回避策は 'sudo java -version'では有効ですが、実際の問題ではありません。 – benroth

答えて

0

+1 Debianの 説明:のDebian GNU /林

Debianのジェシー

ディストリビュータのIDで同じ問題を抱えてux 8.6(jessie) リリース:8.6 コード名:jessie

関連する問題