it-swarm.com.ru

Ошибка установки Maven OSX Не поддерживается Major.minor версия 51.0

Я установил 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
114
Steven

Проблема в том, что вы неправильно установили Java_HOME в Mac. Чтобы сделать это, вы должны установить это так:

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

В моем случае моя установка JDK - jdk1.8.0_40, убедитесь, что вы набрали свою.

Тогда вы можете использовать команды Maven.

С уважением!

275
GerSua

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

$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

16
René

Динамическое решение $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
7
evandrix

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

brew uninstall maven
brew tap homebrew/versions 
brew install maven2
3
javaboygo

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

2
Noumenon

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

экспорт Java_HOME = `/ usr/libexec/Java_home`

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

0
Pradeep