Установка 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
Ответы
Ответ 1
Проблема заключается в том, что вы не установили JAVA_HOME в Mac должным образом. Чтобы сделать это, вы должны сделать так:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
В моем случае моя установка JDK - jdk1.8.0_40, убедитесь, что вы написали свой.
Затем вы можете использовать команды maven.
Привет!
Ответ 2
Пожалуйста, попробуйте
$JAVA_HOME/bin/java -version
Maven использует $JAVA_HOME для разрешения класса JRE libs.
Чтобы убедиться в том, что какой-либо JDK определен явно перед компиляцией, например:
export JAVA_HOME=/usr/java/jdk1.7.0_51
Нет ли версии < 1.7, и вы используете Maven 3.3.1? В этом случае причина является новым предварительным условием: https://jira.codehaus.org/browse/MNG-5780.
Ответ 3
Динамическое решение $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
Ответ 4
Я решил использовать старую версию maven (2.x), используя brew:
brew uninstall maven
brew tap homebrew/versions
brew install maven2
Ответ 5
В Eclipse вам не нужно менять JAVA_HOME, вам просто нужно изменить конфигурацию запуска для Maven на что-то выше 1.6 (даже если ваш проект находится на Java 6, Maven не должен быть). Щелкните правой кнопкой мыши проект, выберите Maven Build или Run As > Run Configurations и установите правильную версию JDK.
Ответ 6
Сделайте это в своем .profile -
export JAVA_HOME = `/usr/libexec/java_home`
(backticks обязательно выполнит команду и поместите ее значение в JAVA_HOME)