2015-03-25 6 views
112

Ich installierte Maven durch diese Schritte folgende:Maven-Installation OSX Fehler Nicht unterstützte major.minor Version 51.0

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… 
: (a tutorial)

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 

dann habe ich das Echo in der Bash_profile etw wie folgt geschrieben

und auch ich schrieb dies in der Bashrc

export M2_HOME=/Users/steven/zimmermann/maven 
export M2=$M2_HOME/bin 
export PATH=$M2:$PATH 

jetzt, wenn ich die Version (überprüfen möchten) Ich bekomme die folgende Ausnahme: Ich denke, es gibt einige Versionen falsch, aber ich weiß es nicht.

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) 

Zusätzliche Informationen:

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 
+2

TL; DR: Java-Version ist alt. Benutze Java-1.7 + –

Antwort

274

Das Problem liegt daran, dass Sie JAVA_HOME nicht ordnungsgemäß in Mac festgelegt haben. Um das zu tun, sollten Sie es tun, wie folgt festgelegt:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home

In meinem Fall meine JDK Installation jdk1.8.0_40 ist, stellen Sie sicher, dass Sie Ihr Typ.

Dann können Sie maven Befehle verwenden.

Grüße!

+15

Ich bemerke auch, dass die aktuelle Version von Maven3 Java7 benötigt, zumindest habe ich diese Fehlermeldung erhalten, wenn 'JAVA_HOME' * * gesetzt wurde richtig, aber zu einem Java 1.6 JDK. –

+0

Ich brauchte 'export JAVA_HOME ="/Bibliothek/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Inhalte/Home/"' zu meinem .profile. – aliteralmind

+0

In meinem Fall ist das Verzeichnis '/ Library/Java/JavaVirtualMachines' leer ... was soll ich tun? ps'java - Version Java-Version "1.6.0_65" Java (TM) SE Laufzeitumgebung (Build 1.6.0_65-b14-466.1-11M4716) Java HotSpot (TM) 64-Bit-Server-VM (Build 20.65-b04- 466.1, gemischter Modus) ' – AnnabellChan

16

Bitte eher versuchen

$JAVA_HOME/bin/java -version 

Maven verwendet $ JAVA_HOME für die Klassenpfadauflösung von JRE-Bibliotheken. Um sicher zu sein eine bestimmte JDK verwendet gesetzt explizit vor dem Kompilieren, zum Beispiel:

export JAVA_HOME=/usr/java/jdk1.7.0_51 

Gibt es nicht eine Version < 1.7 und Sie verwenden Maven 3.3.1? In diesem Fall ist der Grund eine neue Voraussetzung: https://jira.codehaus.org/browse/MNG-5780.

+0

Hey, ich kämpfe gerade mit dem gleichen Problem .. Was meinst du mit "Gibt es nicht eine Version <1.7"? Ich benutze Java 1.6, ist das zu alt? Und die zweite Frage: Ich habe keinen "Java" Ordner unter "/ usr", nur unter System/Library? Jede Hilfe würde sehr geschätzt werden –

+6

Ab Maven 3.3 gibt es eine Mindestanforderung JDK 1.7. Wenn Sie mit JDK 1.6 kompilieren wollen, müssen Sie auf Maven 3.2.5 oder weniger stecken. –

+1

Ich habe es schon zur Arbeit :) Ich hatte JDK 1.7 installiert, aber JAVA_HOME bezog sich auf jdk 1.6 –

7

Eine dynamische $HOME/.zshrc Lösung, wenn Sie wie ich sind dh. Linux @ Arbeit; 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 
+0

Das Problem hier ist NICHT java_home gesetzt ist. Es ist eingestellt, aber die Version ist alt. –

+0

auf OSX erhalten neueste jdk zuerst - http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html – lfender6445

3

Ich löste es eine alte Version von Maven (2.x) setzen, mit brauen:

brew uninstall maven 
brew tap homebrew/versions 
brew install maven2 
2

In Eclipse Sie müssen nicht JAVA_HOME ändern zu können, muss nur die Run-Konfiguration für Maven auf etwas über 1,6 ändern (selbst wenn Ihr Projekt auf Java 6 ist, sollte Maven nicht sein). Klicken Sie mit der rechten Maustaste auf das Projekt, wählen Sie Maven Build oder Ausführen als> Konfigurationen ausführen und legen Sie die korrekte JDK-Version fest.

0

Tun Sie dies in Ihrem.Profil -

export JAVA_HOME = `/ usr/libexec/java_home`

(Backticks stellen Sie sicher, den Befehl und legen Sie seinen Wert in JAVA_HOME auszuführen)

Verwandte Themen