Maven Kurulumu OSX Hatası Desteklenmeyen major.minor sürüm 51.0


114

Bu adımları izleyerek maven'i kurdum: (bir eğitim)

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

sonra yankıyı .bash_profile sth dosyasına şöyle yazdım:

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

ve ayrıca bunu .bashrc'ye yazdım

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

şimdi version ( mvn -v) 'u kontrol etmek istediğimde şu istisnayı alıyorum: Bazı versiyonların yanlış olduğunu düşünüyorum ama bilmiyorum.

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)

Ek bilgi:

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 sürümü eski. Java-1.7 + kullanın
Ajeet Ganga

Yanıtlar:


275

Sorun, Mac'te JAVA_HOME'u düzgün ayarlamamış olmanızdır. Bunu yapmak için bunu şu şekilde ayarlamalısınız:

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

Benim durumumda, JDK kurulumum jdk1.8.0_40, sizinkini yazdığınızdan emin olun.

Daha sonra maven komutlarını kullanabilirsiniz.

Saygılarımızla!


15
Ben de Maven3 geçerli sürümü Java7 ihtiyacı olduğuna dikkat, en azından ben bu hata mesajını aldım JAVA_HOME edildi doğru ayarlanmış, ancak bir Java 1.6 JDK için.
Steve Powell

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/".Profile ihtiyacım vardı .
aliteralmind

Benim durumumda, dir /Library/Java/JavaVirtualMachinesboş ... ne yapmalıyım? 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)
LittleLittleQ

1
Sahip olduğunuz Mac OS X sürümüne bağlı olarak bunu .profile veya .bash_profile dosyanıza eklemelisiniz.
Pacu

ayrıca, .profile veya .bash_profile'a eklenmişse, terminalinizi kapatmayı / yeni bir terminal başlatmayı unutmayın, böylece bu dosyanın içeriği yeniden çalıştırılır.
jotadepicas

16

Lütfen deneyin:

$JAVA_HOME/bin/java -version

Maven $JAVA_HOME, JRE kitaplıklarının sınıf yolu çözümlemesi için kullanır . Belirli bir JDK kullandığınızdan emin olmak için, onu derlemeden önce açıkça ayarlayın, örneğin:

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

1.7'nin altında bir sürüm yok mu ve Maven 3.3.1 kullanıyorsunuz? Bu durumda neden yeni bir ön koşuldur: https://issues.apache.org/jira/browse/MNG-5780


Hey, şu anda aynı sorunla uğraşıyorum .. "1.7'den küçük bir sürüm yok mu" derken neyi kastediyorsunuz? Java 1.6 kullanıyorum, bu çok mu eski? Ve ikinci soru: "/ usr" altında bir "java" klasörüm yok, sadece Sistem / Kitaplık altında mı? Herhangi bir yardım çok takdir edilecektir
Frederik Witte

6
Maven 3.3'ten başlayarak minimum JDK 1.7 gereksinimi vardır. JDK 1.6 ile derlemek istiyorsanız, Maven 3.2.5 veya daha azına takılı kalmalısınız.
René

1
Zaten çalışmasını sağladım :) JDK 1.7'yi kurdum, ancak JAVA_HOME jdk 1.6'ya atıfta bulunuyordu
Frederik Witte

7

Dinamik bir $HOME/.zshrcçözüm, eğer benim gibiyseniz, yani. 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

Buradaki sorun java_home ayarlı DEĞİLDİR. Ayarlandı, ancak sürüm eski.
Ajeet Ganga


3

Brew kullanarak eski bir maven (2.x) sürümünü koyarak çözdüm:

brew uninstall maven
brew tap homebrew/versions 
brew install maven2

2

Eclipse'de, JAVA_HOME'u değiştirmenize gerek yoktur, sadece Maven için çalıştırma yapılandırmasını 1.6'nın üzerinde bir değere değiştirmeniz gerekir (projeniz Java 6'da olsa bile, Maven olmamalıdır). Projeye sağ tıklayın, Maven Oluştur'u veya Farklı Çalıştır> Yapılandırmaları Çalıştır'ı seçin ve doğru JDK sürümünü ayarlayın.


0

Bunu. Profilinizde yapın -

dışa aktar JAVA_HOME = `/ usr / libexec / java_home`

(geri işaretler komutu çalıştırdığınızdan ve değerini JAVA_HOME'a yerleştirdiğinizden emin olun)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.