Maven игнорирует JAVA_HOME в OSX?
По какой-то причине Maven игнорирует JAVA_HOME в OSX.
Недавно я обновил java 8 build 11 до java 8 build 25 и удалил 11 из-за исправления ошибки в 25.
Я обновил JAVA_HOME
:
:~ > echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
java
а также javac
оба сообщают правильную версию:
:~ > java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
:~ > javac -version
javac 1.8.0_25
libexec
верно:
:~ > /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
символическая ссылка CurrentJDK верна:
:~ > ls -la /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
drwxr-xr-x 11 root wheel 374B Nov 19 14:35 ./
drwxr-xr-x 12 root wheel 408B Sep 23 14:29 ../
lrwxr-xr-x 1 root wheel 10B Jul 28 14:50 1.4@ -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B Jul 28 14:50 1.4.2@ -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B Jul 28 14:50 1.5@ -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B Jul 28 14:50 1.5.0@ -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B Jul 28 14:50 1.6@ -> CurrentJDK
lrwxr-xr-x 1 root wheel 10B Jul 28 14:50 1.6.0@ -> CurrentJDK
drwxr-xr-x 8 root wheel 272B Jul 29 18:41 A/
lrwxr-xr-x 1 root wheel 1B Jul 28 14:50 Current@ -> A
lrwxr-xr-x 1 root wheel 58B Nov 19 14:35 CurrentJDK@ -> /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents
Но Maven все еще пытается ударить 1.8.0_11:
:~ > mvn -version
Error: JAVA_HOME is not defined correctly.
We cannot execute /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home/bin/java
Запуск OSX Mavericks.
Любая идея, почему Maven игнорирует JAVA_HOME
?
2 ответа
Коллега рассказал мне, в чем проблема. Он не хотел получать очки репутации, поэтому я просто публикую ответ для любого, кто может найти это через Google.
Решение состоит в том, чтобы поставить
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
в
~/.mavenrc
Очевидно, по какой-либо причине maven получает свой собственный файл профиля. Создание вышеуказанного файла с указанным выше значением немедленно решило проблему:
:~ > mvn -version
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T16:58:10-04:00)
Maven home: /usr/local/Cellar/maven/3.2.3/libexec
Java version: 1.8.0_25, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.9.5", arch: "x86_64", family: "mac"
Я исправил эту проблему, добавив
export JAVA_HOME="$(/usr/libexec/java_home)"
в
~/.mavenrc
Apple рекомендует использовать /usr/libexec/java_home
вместо использования всего пути к Java