Oracle выпустила Java JDK 7 26 апреля для Mac OS X. Я выполнил инструкции по установке, и когда я выполняю java -version в окне терминала, я получаю:
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)
Однако когда я это делаю mvn -version
в окне терминала, я получаю:
Apache Maven 3.0.2 (r1056850; 2011-01-08 18:58:10-0600)
Java version: 1.6.0_31, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.7.3", arch: "x86_64", family: "mac"
Как я могу заставить Maven использовать Java JDK 1.7.0_04?
Спасибо за помощь.
Проблема в том, что символическая ссылка «CurrentJDK» внутри версий JavaVm.framework указывает на старый jdk, поэтому, когда я использовал следующие команды, чтобы установить CurrentJDK на последнюю версию (1.7.0_45), она работает
ссылка: http://java.dzone.com/articles/installing-jdk-7-mac-os-x
источник
jdk1.7.0_45.jdk
, моя былаjdk1.7.0_51.jdk
Чтобы найти путь в настройках Java, попробуйте
/usr/libexec/java_home -X
Моя запись Java7 выглядит так:
источник
Вам нужно изменить
JAVA_HOME
переменную среды на новое место JDK 1.7.Посмотрите на этот вопрос, чтобы узнать о возможных местах, где можно определить JAVA_HOME. В терминале введите,
which java
чтобы найти путь к вашей установке Java, а затем обновите,JAVA_HOME
чтобы указать на этот путь (но исключите конечную папку bin).источник
В случае, если кто-то устанавливает Maven на 64-битный Mac под управлением Mac OSX «Mavericks», сэкономьте себе время и немного потрудитесь, пытаясь установить Maven. Я пытался следить за этим (что не удалось, потому что расположение java_home изменилось на Mavericks:
http://maven.apache.org/download.cgi
Я рвал на себе волосы, пока не нашел этот веб-сайт, на котором рекомендуется установить homebrew и следовать инструкциям на этой странице: http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac -osx-109.html
после завершения не паникуйте, если $ maven -version не работает, вместо этого используйте $ mvn --version, как рекомендуется maven.apache.org/download.cgi.
Это сработало, но затем я заметил, что Maven использует Java SDK версии Java: 1.6.0_65, что не является последним SDK, который я установил в системе.
Как только я установил JAVA_HOME =
/usr/libexec/java_home
Он использовал правильный SDK: Maven home: /usr/local/Cellar/maven/3.1.1/libexec Версия Java: 1.7.0_45, поставщик: Oracle Corporation Домашняя страница Java: /Library/Java/JavaVirtualMachines/jdk1.7.0_45. jdk / Contents / Home / jre Локаль по умолчанию: en_US, кодировка платформы: UTF-8 Имя ОС: «mac os x», версия: «10.9», архитектура: «x86_64», семейство: «mac»
Успех! но подождите ... в следующий раз, когда я открыл терминал и запустил mvn -v, он вернулся к версии java 1.6. WTH!
это своего рода предполагаемая ошибка из того, что я читал: echo JAVA_HOME =
/usr/libexec/java_home -v 1.7
| sudo tee -a / etc / mavenrcи сейчас:
Домашняя страница Maven: /usr/local/Cellar/maven/3.1.1/libexec Версия Java: 1.7.0_45, поставщик: Oracle Corporation Домашняя страница Java: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre Локаль по умолчанию: en_US, кодировка платформы: UTF-8 Имя ОС: «mac os x», версия: «10.9», архитектура: «x86_64», семейство: «mac»
источник
export JAVA_HOME=`/usr/libexec/java_home`
у меня хорошо сработало, чтобы правильно экспортировать переменную JAVA_HOME.Причина, по которой Maven все еще использует Java 6, заключается в том, что запускающий его скрипт / usr / bin / mvn не использует правильный метод OS / X для разрешения текущей версии Java, как указано в настройках Java. Подробнее см. Эту проблему Maven:
http://jira.codehaus.org/browse/MNG-4226
Голосование может исправить это; тем временем, если вы измените сценарий / usr / bin / mvn, как показано в комментариях и исправлении по этой проблеме, вы получите желаемый результат.
источник
Хорошо на моей машине. Да, установщик Oracle не совсем выполнил свою работу, и меня это до бесконечности смутило после того, как 1.6 все еще работала.
но SDK HOME на самом деле является сим-ссылкой, по-прежнему указывающей на 1.6
/Library/Java/Home
в поисковике GetInfo указывает на/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
в Терминале
Иди разберись.
Я нашел здесь 1.7 и использую его для сборки:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
источник
Я думаю, что проблема частично связана с механизмом запуска java. Мне удалось заставить Eclipse запускать мой код под Java7, но я думаю, что само eclipse все еще работает под Java6. Кроме того, у меня есть java-программа, которая последний раз была скомпилирована год назад и построена с использованием jarbundler-2.1.0.jar (с опцией jvmversion = "1.6+"). Когда я дважды щелкаю файл .app, он запускает Java6, но когда я дважды щелкаю файл .jar внутри .app, он запускает Java7.
Кроме того, я не использую JAVA_HOME, но все равно получаю правильную версию java "1.7.0_04", указанную в вопросе. JAVA_HOME кажется отвлекающим маневром. Может быть, Maven это нужно, но Eclipse, похоже, его не использует, и запуск файлов jar тоже.
И после установки Java7 в инструменте настроек Java, похоже, это не влияет на запуск java-файлов .app. Однако он позволяет «java -version» из терминала работать нормально. Я попытался снять все флажки, кроме опции Java7, а затем Eclipse вообще не запускался.
источник
Если ваш JAVA_HOME находится в bash локального пользователя, mvn выберет текущую версию java системы независимо от того, какой JAVA_HOME вы установили.
Поэтому сначала запустите команду which mvn и проверьте, какой исполняемый файл mvn вы используете. После этого отредактируйте этот файл mvn и измените переменную JAVA_HOME на предпочитаемый вами дом java.
источник