Я установил 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
Ответы:
Проблема в том, что вы неправильно установили JAVA_HOME на Mac. Для этого вы должны установить его так:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
В моем случае моя установка JDK - jdk1.8.0_40, убедитесь, что вы ввели свой.
Затем вы можете использовать команды maven.
С уважением!
источник
JAVA_HOME
был установлен правильно, но для Java 1.6 JDK.export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/"
был мой .profile./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)
Пожалуйста, попробуйте:
Maven использует
$JAVA_HOME
для разрешения пути к классам библиотек JRE. Чтобы обязательно использовать определенный JDK, установите его явно перед компиляцией, например:Нет ли версии <1.7, и вы используете Maven 3.3.1? В этом случае причина - новое условие: https://issues.apache.org/jira/browse/MNG-5780
источник
Динамическое
$HOME/.zshrc
решение, если вы похожи на меня т.е. Linux @ work; MBP / A @ homeисточник
Я решил это, поставив старую версию maven (2.x), используя brew:
источник
В Eclipse вам не нужно изменять JAVA_HOME, вам просто нужно изменить конфигурацию запуска для Maven на значение выше 1.6 (даже если ваш проект находится на Java 6, Maven не должен). Щелкните проект правой кнопкой мыши, выберите Maven Build или Run As> Run Configurations и установите правильную версию JDK.
источник
Сделайте это в своем .profile -
экспорт JAVA_HOME = `/ usr / libexec / java_home`
(обратные кавычки обязательно выполните команду и поместите ее значение в JAVA_HOME)
источник