J'essaie d'exécuter l'exemple WordCount sur hadoop - 1.0.4 et j'obtiens l'erreur suivante:
Exception in thread "main" Java.lang.UnsupportedClassVersionError: WordCount :
Unsupported major.minor version 52.0
at Java.lang.ClassLoader.defineClass1(Native Method)
at Java.lang.ClassLoader.defineClass(ClassLoader.Java:791)
at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:449)
at Java.net.URLClassLoader.access$100(URLClassLoader.Java:71)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:361)
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:355)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:354)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:423)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:356)
at Java.lang.Class.forName0(Native Method)
at Java.lang.Class.forName(Class.Java:264)
at org.Apache.hadoop.util.RunJar.main(RunJar.Java:149)
J'utilise la version Java version:
Java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) Server VM (build 23.6-b04, mixed mode)
Java_HOME indique également le répertoire d'installation de Java7.
Merci de votre aide.
On dirait que vous utilisez JDK8 pour la compilation et la version inférieure sur l'endroit où vous l'utilisez.
Donc
En supposant utiliser Eclipse, Window > Preferences > Compiler > compiler level
puis définissez le niveau inférieur (<actuel).
J'ai eu le même problème que j'ai résolu. J'ai trouvé que le Java_HOME
dans mon hadoop-env.sh
est /usr/lib/jvm/Java-6-openjdk
mais le Java_HOME
dans /etc/profile
est /usr/local/Java/jdk1.8.0_25
.
Après avoir changé Java_HOME
dans /etc/profile
à /usr/lib/jvm/Java-6-openjdk
qui est identique à hadoop-env.sh
et utilise $source /etc/profile # to make /etc/profile effects
Mon problème est résolu! J'espère que cela t'aidera.
On dirait que quelqu'un a réussi à compiler une classe avec un compilateur Java 8. Recompilez le bocal incriminé avec un niveau de conformité de Java 7 ou inférieur).
Et bien évidemment ça ne marchera pas! Vous compilez sur un JDK plus récent et déployez sur un JDK/JRE plus ancien. Vous devez compiler sur l'ancien JDK.
Le problème est dû au fait que les fichiers .jsp sont compilés avec un compilateur supérieur (8) que prévu (7). Remplacez tous les niveaux de compilation par un niveau inférieur (c'est-à-dire 7) et modifiez également le chemin jdk indiqué dans le fichier de paramètres de configuration Eclipse dans le même dossier où se trouve .exe.
J'ai également rencontré le même problème. Devrais utiliser la même Java pour la compilation et identique ou supérieure à l'endroit où vous l'exécutez, bien que vice-versa provoque cette erreur. Si vous avez vérifié:
Window > Preferences > Compiler > compiler level
Java -version
et les deux ont la même version alors vous êtes prêt à partir. Lors de la création d'un nouveau projet dans Eclipse: File -> New -> Java Project
sous [~ # ~] jre [~ # ~] check Utilisez un environnement d'exécution et défini sur la même version qui se trouve sur votre système et sur le système où vous devez exécuter ce projet.Je pense que vous avez déjà obtenu votre réponse ... il suffit d'ajouter, dans Eclipse sous le projet, il y a un dossier JRE System Library [JavaSE-1.x] .. faites un clic droit dessus, vous verrez l'écran JRE System Library..there vous pouvez définir l'environnement d'exécution.