Zainstalowałem Mavena, wykonując następujące kroki: (samouczek)
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
potem napisałem echo w .bash_profile sth w ten sposób:
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 także napisałem to w .bashrc
export M2_HOME=/Users/steven/zimmermann/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
teraz, gdy chcę sprawdzić wersję ( mvn -v
), pojawia się następujący wyjątek: Myślę, że niektóre wersje są nieprawidłowe, ale nie wiem.
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)
Dodatkowe informacje:
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
Odpowiedzi:
Problem polega na tym, że nie ustawiłeś poprawnie JAVA_HOME na Macu. Aby to zrobić, należy ustawić to w następujący sposób:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
W moim przypadku moja instalacja JDK to jdk1.8.0_40, upewnij się, że wpisałeś swoją.
Następnie możesz użyć poleceń maven.
Pozdrowienia!
źródło
JAVA_HOME
został ustawiony poprawnie, ale na Java 1.6 JDK.export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/"
do mojego .profile./Library/Java/JavaVirtualMachines
jest pusty ... co mam zrobić? psjava -version java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
Proszę raczej spróbować:
Maven używa
$JAVA_HOME
do rozpoznawania ścieżek klas bibliotek JRE. Aby upewnić się, że używasz określonego JDK, ustaw go jawnie przed kompilacją, na przykład:Czy nie ma wersji <1.7 i używasz Maven 3.3.1? W tym przypadku powodem jest nowy warunek wstępny: https://issues.apache.org/jira/browse/MNG-5780
źródło
Dynamiczne
$HOME/.zshrc
rozwiązanie, jeśli jesteś podobny do mnie tj. Linux @ work; MBP / A @ homeźródło
Rozwiązałem to umieszczając starą wersję mavena (2.x), używając naparu:
źródło
W Eclipse nie musisz zmieniać JAVA_HOME, wystarczy zmienić konfigurację uruchamiania Mavena na coś powyżej 1.6 (nawet jeśli twój projekt jest w Javie 6, Maven nie powinien). Kliknij projekt prawym przyciskiem myszy, wybierz opcję Maven Build lub Uruchom jako> Uruchom konfiguracje i ustaw poprawną wersję JDK.
źródło
Zrób to w swoim .profile -
eksportuj JAVA_HOME = `/ usr / libexec / java_home`
(odwrotne klawisze gwarantują wykonanie polecenia i umieszczenie jego wartości w JAVA_HOME)
źródło