J'ai installé Maven en suivant ces étapes: (un tutoriel)
Java_HOME=/Library/Java/Home
export M2_HOME=/Users/steven/zimmermann/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
echo $Java_HOME
echo $M2_HOME
echo $M2
echo $PATH
nano .bash_profile
alors j'ai écrit l'écho dans le .bash_profile sth comme ceci:
Java_HOME=/usr/libexec/Java_home
M2_HOME=/path/to/your/Apache-maven-3.x.x
M2=/path/to/your/Apache-maven-3.x.x/bin
PATH=/path/to/maven/bin:/$….bla-bla-bla…
et aussi j'ai écrit cela dans le .bashrc
export M2_HOME=/Users/steven/zimmermann/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
maintenant, quand je veux vérifier la version (mvn -v
), j'obtiens l'exception suivante: Je pense qu'il y a des versions fausses, mais je ne sais pas.
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:637)
at Java.lang.ClassLoader.defineClass(ClassLoader.Java:621)
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)
Information additionnelle:
Java -version
Java version "1.8.0_40" Java(TM) SE Runtime Environment (build 1.8.0_40-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
javac -version
javac 1.8.0_40
Le problème est que vous n'avez pas défini correctement Java_HOME dans Mac. Pour ce faire, vous devez le définir comme suit:
export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Dans mon cas, jDk1.8.0_40 est installé sur votre JDK, assurez-vous de taper le vôtre.
Ensuite, vous pouvez utiliser les commandes maven.
Cordialement!
S'il vous plaît essayez plutôt:
$Java_HOME/bin/Java -version
Maven utilise $Java_HOME
pour la résolution du chemin d'accès aux classes des bibliothèques JRE . Pour être sûr d'utiliser un certain JDK, définissez-le explicitement avant la compilation, par exemple:
export Java_HOME=/usr/Java/jdk1.7.0_51
N'y a-t-il pas une version <1.7 et que vous utilisez Maven 3.3.1? Dans ce cas, la raison est une nouvelle condition préalable: https://issues.Apache.org/jira/browse/MNG-5780
Une solution dynamique $HOME/.zshrc
, si vous êtes comme moi, c'est-à-dire. Linux @ work; MBP/A @ home
if [[ $(uname) == "Darwin" ]]; then export OSX=1; fi
if [[ $(uname) == "Linux" ]]; then export LINUX=1; fi
if [[ -n $OSX ]]; then
export Java_HOME=$(/usr/libexec/Java_home)
else
export Java_HOME=/usr/lib/jvm/default-Java
fi
Je l'ai résolu en mettant une ancienne version de maven (2.x), en utilisant une infusion:
brew uninstall maven
brew tap homebrew/versions
brew install maven2
Dans Eclipse, vous n'avez pas besoin de modifier Java_HOME, il vous suffit de modifier la configuration d'exécution de Maven à une valeur supérieure à 1,6 (même si votre projet est sur Java 6, Maven ne devrait pas l'être). Cliquez avec le bouton droit sur le projet, choisissez Maven Build ou Run As> Run Configurations et définissez la version correcte du JDK.
Faites ceci dans votre .profile -
export Java_HOME = `/ usr/libexec/Java_home`
(les guillemets s'assurent d'exécuter la commande et de placer sa valeur dans Java_HOME)