Maven, JAVA_HOME с OS X - PullRequest
       29

Maven, JAVA_HOME с OS X

14 голосов
/ 06 января 2010

Попытка заставить Maven, Java и OS X играть хорошо вместе - то, что я делал несколько раз без проблем на машинах с Linux и Windows. Я предполагал, что все, что мне нужно было сделать, это загрузить Maven, настроить переменные окружения, и я буду в порядке. Вот фрагмент из моего .bash_profile ...

export JAVA_HOME=/Library/Java/Home/  
export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1  
export PATH=$PATH:$M2_HOME/bin

Параметр JAVA_HOME - это то, что Apple рекомендует использовать на на этой странице вопросов и ответов . Тем не менее, после запуска терминала и запуска mvn --version, вот вывод ...

Apache Maven 2.2.1 (r801777; 2009-08-06 15:16:01-0400)  
Java version: 1.6.0_17  
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home  
Default locale: en_US, platform encoding: MacRoman  
OS name: "mac os x" version: "10.6.2" arch: "x86_64" Family: "mac"

Есть идеи, почему JAVA_HOME, который я устанавливаю в моем .bash_profile, игнорируется Maven? Это вызывает проблемы, потому что такие вещи, как rt.jar не найдены в JAVA_HOME, который использует Maven. Я могу обойти это, создав символические ссылки и другие хакерские программы в доме, который использует Maven, но я бы предпочел, чтобы он работал правильно, так как это просто взорвется, когда в следующий раз Apple выпустит обновление Java. Спасибо за любую помощь ...

Ответы [ 5 ]

11 голосов
/ 23 декабря 2013

Проблема заключается в том, что символическая ссылка «CurrentJDK» внутри версий JavaVm.framework указывает на старый jdk, поэтому, когда я использовал следующие команды для установки CurrentJDK на последнюю (1.7.0_45), она работает

cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents CurrentJDK

ссылка: http://java.dzone.com/articles/installing-jdk-7-mac-os-x

8 голосов
/ 29 марта 2011

В Mac OS X вы должны использовать / usr / libexec / java_home, чтобы определить правильный JAVA_HOME.

См. Что я должен установить JAVA_HOME на OSX

2 голосов
/ 06 января 2010

На моем Mac / Library / Java / Home является символической ссылкой (фактически началом цепочки символических ссылок), которая в конечном итоге указывает на /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home. Поэтому я не думаю, что Maven игнорирует что-либо. Это просто дает вам фактическое местоположение.

1 голос
/ 06 января 2010

У меня такая же настройка и все отлично работает. UNSET переменная окружения "JAVA_HOME" в вашем сценарии оболочки. Установка Mac позаботится об этом. Вы все равно неправильно его устанавливаете.

Сбросьте его, поставьте файл или загрузочную оболочку и попробуйте снова.

0 голосов
/ 06 января 2010

Ну, во-первых, я бы проверил, является ли mvn скриптом. Если это так, вы можете увидеть, как это источник окружающей среды. Если это не так, я бы искал любые файлы конфигурации, обычно называемые .mvnrc, или что-то в / etc. Конечно, это не повредит RTFM!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...