Помилка установки Maven OSX Непідтримувана major.minor версія 51.0


114

Я встановив maven, виконавши наступні кроки: (навчальний посібник)

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

тоді я написав ехо в .bash_profile sth, як це:

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

а також я написав це у .bashrc

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

тепер, коли я хочу перевірити версію ( mvn -v), я отримую таке виняток: я думаю, що деякі версії неправильні, але я не знаю.

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)

Додаткова інформація:

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 стара. Використовуйте Java-1.7 +
Ajeet Ganga

Відповіді:


275

Проблема полягає в тому, що ви неправильно не встановили JAVA_HOME в Mac. Для цього вам слід встановити його так:

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

У моєму випадку моя установка JDK - jdk1.8.0_40, обов’язково введіть свою.

Потім ви можете використовувати команди Maven.

З повагою!


15
Я також зазначу, що поточній версії Maven3 потрібен Java7, принаймні я отримав це повідомлення про помилку, коли JAVA_HOME було встановлено правильно, але в Java 1.6 JDK.
Стів Пауелл

Мені потрібен export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/"мій .profile.
aliteralmind

У моєму випадку реєстр /Library/Java/JavaVirtualMachinesпорожній ... що мені робити? 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
ви повинні додати це у файл .profile або .bash_profile залежно від версії Mac OS X у вас.
Паку

також, якщо вони додані до .profile або .bash_profile, не забудьте закрити свій термінал / запустити новий термінал, щоб вміст цього файлу запустився знову.
jotadepicas

16

Будь ласка, спробуйте:

$JAVA_HOME/bin/java -version

Мейвен використовує $JAVA_HOMEдля роздільної здатності JRE ліфтів класного шляху. Щоб обов'язково використовувати певний JDK, встановіть його явно перед компіляцією, наприклад:

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

Чи немає версії <1.7, і ви використовуєте Maven 3.3.1? У цьому випадку причина - нова передумова: https://isissue.apache.org/jira/browse/MNG-5780


Гей, я зараз борюся з тією ж проблемою. Що ви маєте на увазі під "Чи не існує версія <1.7"? Я використовую Java 1.6, це занадто стара? І друге питання: у мене немає папки "java" під "/ usr", лише під системою / бібліотекою? Будь-яка допомога буде дуже вдячна
Фредерік Вітте,

6
Починаючи з Maven 3.3, існує мінімальна вимога JDK 1.7. Якщо ви хочете компілювати з JDK 1.6, ви повинні затриматися на Maven 3.2.5 або менше.
Рене

1
Я вже працював :) У мене був встановлений JDK 1.7, але JAVA_HOME посилався на jdk 1.6
Фредерік Вітте

7

Динамічне $HOME/.zshrcрішення, якщо ти такий, як я, тобто. Linux @ робота; 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

Питання тут НЕ встановлено java_home. Він встановлений, але версія стара.
Ajeet Ganga

на osx отримати найновіший jdk спочатку - oracle.com/technetwork/java/javase/downloads/…
lfender6445

3

Я вирішив це, поставивши стару версію Maven (2.x), використовуючи варити:

brew uninstall maven
brew tap homebrew/versions 
brew install maven2

2

У Eclipse вам не потрібно змінювати JAVA_HOME, потрібно лише змінити конфігурацію запуску для Maven на щось вище 1,6 (навіть якщо ваш проект на Java 6, Maven не повинен бути). Клацніть правою кнопкою миші проект, виберіть Maven Build або Run As> Run Configurationtions та встановіть правильну версію JDK.


0

Зробіть це у своєму .profile -

export JAVA_HOME = `/ usr / libexec / java_home`

(зворотні переконайтеся, що виконайте команду та розмістіть її значення в JAVA_HOME)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.