Ошибка установки 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.

С уважением!

GerSua
источник
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.
Pacu
также, если он добавлен в .profile или .bash_profile, не забудьте закрыть терминал / запустить новый терминал, чтобы содержимое этого файла было запущено снова.
jotadepicas
16

Пожалуйста, попробуйте:

$JAVA_HOME/bin/java -version

Maven использует $JAVA_HOMEдля разрешения пути к классам библиотек JRE. Чтобы обязательно использовать определенный JDK, установите его явно перед компиляцией, например:

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

Нет ли версии <1.7, и вы используете Maven 3.3.1? В этом случае причина - новое условие: https://issues.apache.org/jira/browse/MNG-5780

Рене
источник
Привет, я сейчас борюсь с той же проблемой .. Что вы имеете в виду, говоря «Нет ли версии <1.7»? Я использую Java 1.6, это слишком старо? И второй вопрос: у меня нет папки "java" в "/ usr", только в System / Library? Любая помощь будет принята с благодарностью
Фредерик Витте
6
Начиная с Maven 3.3 существует минимальное требование JDK 1.7. Если вы хотите компилировать с JDK 1.6, вам нужно застрять на Maven 3.2.5 или ниже.
René
1
Я уже заставил его работать :) У меня был установлен JDK 1.7, но JAVA_HOME ссылался на jdk 1.6
Фредерик Витте
7

Динамическое $HOME/.zshrcрешение, если вы похожи на меня т.е. 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
evandrix
источник
Проблема здесь НЕ в том, что java_home установлен. Ставится, но версия старая.
Ajeet Ganga
на osx сначала загрузите последнюю версию jdk - oracle.com/technetwork/java/javase/downloads/…
lfender6445
3

Я решил это, поставив старую версию maven (2.x), используя brew:

brew uninstall maven
brew tap homebrew/versions 
brew install maven2
javaboygo
источник
2

В Eclipse вам не нужно изменять JAVA_HOME, вам просто нужно изменить конфигурацию запуска для Maven на значение выше 1.6 (даже если ваш проект находится на Java 6, Maven не должен). Щелкните проект правой кнопкой мыши, выберите Maven Build или Run As> Run Configurations и установите правильную версию JDK.

Ноумен
источник
0

Сделайте это в своем .profile -

экспорт JAVA_HOME = `/ usr / libexec / java_home`

(обратные кавычки обязательно выполните команду и поместите ее значение в JAVA_HOME)

Прадип
источник