2015-10-12 3 views
0

Я знаю, что это связано с различием между версиями Java во время компиляции и выполнения, однако я думаю, что я правильно установил все переменные среды, поэтому я не действительно знаю, что все еще вызывает эту проблему.java.lang.UnsupportedClassVersionError Unsupported major.minor version 51.0 rhdfs

$ java -version 
java version "1.7.0_79" 
Java(TM) SE Runtime Environment (build 1.7.0_79-b15) 
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode) 
$ javac -version 
java 1.7.0_79 
$ echo $JAVA_HOME 
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home 
$ hadoop version 
Hadoop 2.7.1 

В RStudio я

> Sys.getenv("JAVA_HOME") 
[1] "/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home" 
> library(rhdfs) 
Loading required package: rJava 

HADOOP_CMD=/usr/local/Cellar/hadoop/2.7.1/bin/hadoop 

Be sure to run hdfs.init() 
Warning message: 
package ‘rJava’ was built under R version 3.1.3 
> hdfs.init() 
Error in .jnew("org/apache/hadoop/conf/Configuration") : 
    java.lang.UnsupportedClassVersionError: org/apache/hadoop/conf/Configuration : Unsupported major.minor version 51.0 

Также я поставил $ JAVA_HOME в hadoop-env.sh Hadoop на 1.7.0, а

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

Я был бы очень признателен, если кто-то может указать, что здесь происходит.

ответ

0

Вы, несомненно, искали вокруг, чтобы найти Java «Major» версии 51 1.7, поэтому вы близки.

Единственный ясный способ для меня, чтобы вы могли понять это, - это проверить файл класса под контролем - org.apache.hadoop.conf.Configuration. Ниже приведено начальное определение Class file. Обратите внимание, что minor_version и major_version являются вторым и третьим полями соответственно. Это должно сказать вам, что класс был скомпилирован, поэтому минимальное время выполнения, которое вам нужно выполнить.

struct Class_File_Format { 
    u4 magic_number; 

    u2 minor_version; 
    u2 major_version; 

    u2 constant_pool_count; 

    cp_info constant_pool[constant_pool_count - 1]; 

    u2 access_flags; 
Смежные вопросы