После установки Java JDK 7 Для Mac OS X - mvn -version по-прежнему отображается версия Java 1.6.0_31
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?
Спасибо за помощь.
Ответы
Ответ 1
Наконец нашел ответ здесь:
http://www.adam-bien.com/roller/abien/entry/java_se_development_kit_7
Вместо этого вы должны использовать JAVA_HOME=$(/usr/libexec/java_home)
на Mac, а затем установить текущий jdk через "Java Preferences.app".
Задайте JAVA_HOME в файле ~/.profile
Ответ 2
Проблема в том, что символическая ссылка "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
Ответ 3
Чтобы найти путь от Java Preferences, попробуйте
/usr/libexec/java_home -X
Моя запись Java7 выглядит следующим образом:
<dict>
<key>JVMArch</key>
<string>x86_64</string>
<key>JVMBundleID</key>
<string>com.oracle.java.7u04.jdk</string>
<key>JVMEnabled</key>
<true/>
<key>JVMHomePath</key>
<string>/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home</string>
<key>JVMIsBuiltIn</key>
<false/>
<key>JVMName</key>
<string>Java SE 7</string>
<key>JVMPlatformVersion</key>
<string>1.7</string>
<key>JVMVendor</key>
<string>Oracle Corporation</string>
<key>JVMVersion</key>
<string>1.7.0_04</string>
</dict>
Ответ 4
Вам нужно изменить переменную среды JAVA_HOME
в новое местоположение JDK 1.7.
Посмотрите этот вопрос для возможных мест, где может быть определен JAVA_HOME. В терминале введите which java
, чтобы найти путь к вашей установке Java, а затем обновите JAVA_HOME
, чтобы указать на этот путь (но исключайте папку трейлинга).
Ответ 5
В случае, если кто-либо устанавливает Maven на 64-разрядный Mac, работающий под Mac OSX "Mavericks", сэкономит время и немного потянет волосы, пытаясь установить Maven. Я пытался следовать этому (что не удалось, потому что местоположение java_home изменилось на Mavericks:
http://maven.apache.org/download.cgi
Я вытягивал свои волосы, пока не нашел этот сайт, который рекомендует установить "доморощенный" и следовать инструкциям на этой странице: http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac-osx-109.html
после завершения не паникуйте, когда $maven -version не работает, вместо этого используйте $mvn -version, как указано в файле maven.apache.org/download.cgi.
Это сработало, но потом я заметил, что Java SDK Maven использует версию Java: 1.6.0_65, которая не является последней версией SDK, установленной в системе.
Как только я установил JAVA_HOME = /usr/libexec/java_home
Он использовал правильный SDK:
Maven:/usr/local/Cellar/maven/3.1.1/libexec
Версия Java: 1.7.0_45, поставщик: Oracle Corporation
Java home:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre
Язык по умолчанию: en_US, кодировка платформы: UTF-8
Название ОС: "mac os x", версия: "10.9", arch: "x86_64", family: "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 home:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre
Язык по умолчанию: en_US, кодировка платформы: UTF-8
Название ОС: "mac os x", версия: "10.9", arch: "x86_64", family: "mac"
Ответ 6
Причина, по которой Maven по-прежнему использует Java 6, заключается в том, что запущенный в нее /usr/bin/mvn script не использует правильный метод OS/X для разрешения текущей версии Java, как указано в настройках Java. Для получения дополнительной информации см. Эту проблему Maven:
http://jira.codehaus.org/browse/MNG-4226
Голосование может быть исправлено; в то же время, если вы измените /usr/bin/mvn script, как показано в комментариях и исправлениях по этой проблеме, вы получите желаемый результат.
Ответ 7
Хорошо на моей машине. Да, установщик Oracle точно не выполнял свою работу, и это не смутило меня до конца после того, как 1.6 все еще работал.
java run time was updated
java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)
но SDK HOME на самом деле является симовой ссылкой, все еще указывающей на 1.6
/Library/Java/Home
в finder GetInfo указывает на /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
в терминале
./Home -> /System/Library/Frameworks/JavaVM.framework/Home
Показать рисунок.
Я нашел здесь 1.7, и я использую это для построения с помощью: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
Ответ 8
Я думаю, что проблема частично связана с механизмом запуска 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 Preferences это, похоже, не влияет на запуск .app java файлов. Однако это делает "java -version" из терминала приятным. Я попытался снять флажок, кроме опции Java7, а затем Eclipse не запускался вообще.
Ответ 9
Если ваш JAVA_HOME находится у локального пользователя bash, mvn выберет текущую версию java системы независимо от того, какой JAVA_HOME вы установили.
Следовательно, сначала запустите команду ', которая mvn' и проверьте, какой исполняемый файл mvn вы используете. После этого отредактируйте, что mvn файл и измените переменную JAVA_HOME в ваш предпочтительный дом java.