web-dev-qa-db-fra.com

Java 6 major.minor version 51.0 non prise en charge

J'ai récemment désinstallé Java 8 pour utiliser Java 6 car je souhaite que mon code/mes créations soient utilisables par plus de personnes que celles qui se trouvent sur Java 8. do mvn - version il retourne:

Exception in thread "main" Java.lang.UnsupportedClassVersionError: org/Apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
    at Java.lang.ClassLoader.defineClass1(Native Method)
    at Java.lang.ClassLoader.defineClassCond(ClassLoader.Java:631)
    at Java.lang.ClassLoader.defineClass(ClassLoader.Java:615)
    at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:141)
    at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:283)
    at Java.net.URLClassLoader.access$000(URLClassLoader.Java:58)
    at Java.net.URLClassLoader$1.run(URLClassLoader.Java:197)
    at Java.security.AccessController.doPrivileged(Native Method)
    at Java.net.URLClassLoader.findClass(URLClassLoader.Java:190)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.Java:401)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.Java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.Java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.Java:254)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.Java:239)
    at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.Java:144)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.Java:266)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.Java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.Java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.Java:356)

Quand je fais Java -version:

Java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Tout semble aller pour le mieux avec Java, mais cela se produit également lorsque j'essaie d'exécuter des fichiers JAR exécutables. Je l'ai contourné en faisant manuellement Java -jar (nom du jar)

69
Hassan Syyid

Selon site web maven , la dernière version à prendre en charge Java 6 est 3.2.5, et les versions 3.3 et supérieures utilisent Java 7. Mon intuition est que vous ' Si vous utilisez Maven version 3.3 ou supérieure, vous devez soit passer à Java 7 (et définir les attributs source/cible appropriés dans votre pom), soit rétrograder maven.

93
John Ament

Ce numéro de version (51.0) indique que vous essayez d’exécuter des classes compilées pour Java 7. Vous devrez les recompiler pour Java 6.

Notez cependant que certaines fonctionnalités peuvent ne plus être compatibles avec Java 6, qui est très ancien et qui n'est plus pris en charge (publiquement) par Oracle.

11
Andy Turner

j'ai également fait face à un problème similaire. J'ai pu résoudre ce problème en définissant Java_HOME dans la variable d'environnement de Windows. La définition de Java_HOME dans un fichier de commandes ne fonctionne pas dans ce cas.

4
Rajesh Kumar Yadav

J'ai rencontré le même problème. J'utilise jdk 1.8 et maven 3.3.9 Une fois que j'ai exporté Java_HOME, je n'ai pas vu cette erreur. export Java_HOME =/Bibliothèque/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Sommaire/Accueil /

1
Dakshin

Le problème vient du fait que vous n'avez pas défini correctement la version de JDK. Vous devez utiliser jdk 7 pour le numéro majeur 51. Comme ceci:

Java_HOME =/usr/Java/jdk1.7.0_79

0
Mohammad Zebardast

Je suis confronté au même problème et résolu en ajoutant la variable Java_HOME avec la version mise à jour de Java dans ma machine Ubuntu (16.04). Si vous utilisez "Apache Maven 3.3.9", vous devez mettre à niveau votre Java_HOME avec Java7 ou plus.

Étape pour faire ceci

1-Sudo vim/etc/environment

2-Java_HOME = Répertoire d'installation Java (MyCase-/opt/dev/jdk1.7.0_45 /)

3-Run echo $ Java_HOME donnera la valeur définie à Java_HOME

4-Now mvn -version donnera la sortie désirée

Apache Maven 3.3.9

Maven home: /usr/share/maven

Java version: 1.7.0_45, vendor: Oracle Corporation

Java home: /opt/dev/jdk1.7.0_45/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "4.4.0-36-generic", Arch: "AMD64", family: "unix"
0
pintu