Я установил JDK 7u7, скачанный с сайта оракула. Но после установки терминал все еще показывает версию 6 Java
$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
Любая идея, почему Java 7 не появляется?
Ответ: ОК, проблема была решена. Вот ответ: я обнаружил, что мой Терминал имеет .bash_profile, а переменная java home установлена в 1.6
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
Так что эта строка вызывает проблему каждый раз, когда я открываю новое окно терминала. Просто удалите эту строку, чтобы решить проблему. Вам все еще нужно следовать тому, что сказал @aleroot, но если это не работает для вас, проверьте файл настроек .bash_profile (или .bashrc), чтобы увидеть, экспортировали ли вы ранее какую-либо версию Java.
export JAVA_HOME
подход, как описано здесь, более гибким способом.Ответы:
Потому что вам нужно войти в панель настроек Java и пометить только JVM 7 следующим образом:
Чтобы легко и быстро открыть панель настроек Java в Mac OS X, вы можете просто вызвать прожектор с помощью ⌘+SPACE и ввести Системные настройки, которые будут отображаться в последнем ряду окна.
источник
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
для переключения на последнюю версию Java 7 JDK от Oracle.Установщик Oracle помещает Java в
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin
. И это не переписывает/usr/bin/java
. Итак, если вы выпускаетев терминале он вернет / usr / bin / java. (что, в свою очередь, указывает на
/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
версию Apple 1.6).Итак, если вы хотите использовать новую версию Java, замените
/usr/bin/java
символическую ссылку, чтобы она указала/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
вместо:источник
rm /usr/bin/java
rm: /usr/bin/java: Operation not permitted
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Установите JDK 7, и эта проблема решится сама собой.
Обязательно получите Java Development Kit (JDK), который включает в себя компиляторы и тому подобное, а не только Java Runtime Environment (JRE).
источник
/usr/bin/java
ниJAVA_HOME
. Но постановкаJAVA_HOME
помогла./usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java # But: /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -version java version "1.7.0_67"
vi ~/.bash_profile
Добавить
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Это говорит вашей
/usr/bin/java
цели ссылки использовать последний пакет Java 7, установленный в/Library/Java/JavaVirtualMachines/
Так что для JDK
1.7.0_17
JAVA_HOME
было бы:/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
Примечание. В последнее время в этой области произошли значительные изменения, связанные с переводом Mac OS X с пакетов Java, встроенных в собственную систему Appels, на пакеты Java на базе Oracle. Вышеупомянутое решение работает нормально с Mac OS X 10.8.2
источник
В моем случае проблема заключалась в том, что Oracle устанавливал его в другое место, чем я привык.
Загрузить с Oracle: http://java.com/en/download/mac_download.jsp?locale=en
Убедитесь, что он установлен правильно, просмотрев Системные настройки:
Убедитесь, что версия соответствует ожидаемой (в вашем пути указывается подпрограмма):
/ Библиотека / Интернет \ Плагины / JavaAppletPlugin.plugin / Содержание / Главная / bin / java -version
Создайте ссылку из / usr / bin / java для вашей новой установки
sudo ln -fs / Библиотека / Интернет \ Подключаемые модули / JavaAppletPlugin.plugin / Содержание / Главная / bin / java / usr / bin / java
Sanity проверить вашу версию:
Java-версия
источник
Я столкнулся с подобной проблемой с терминалом, не обновляющим версию Java, чтобы соответствовать версии, установленной на Mac.
Не было проблем с установленной переменной среды JAVA_HOME
Я придумал временное и несколько болезненное, но рабочее решение.
В вашем .bash_profile добавьте строку:
(Это путь на моем компьютере, но может отличаться на вашем, убедитесь, что получили ваш. Пути должны совпадать до / Library / Java / JavaVirtualMachines /)
бег
source ~/.bash_profile
Как я уже упоминал, это временное решение для помощи при лейкопластыре, потому что домашний путь Java жестко запрограммирован. На самом деле нет никакого способа установить путь для получения последней версии, так как это то, что Apple якобы уже делает для терминала, и проблема в том, что переменная среды Apple java_home не обновляется.
источник
Поскольку Эль-Капитан, трудно удалить
/usr/bin/java
символическую ссылку из-за введения новой политики «без корневых связей».Поэтому я просто добавил путь к последней версии Java (в моем случае это
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
)PATH
в моем.bashrc
файл:Чтобы перезагрузить ваш
.bashrc
файл для текущего сеанса, запуститеsource ~/.bashrc
в оболочке. Вы должны сделать это только для сеансов, которые были начаты до изменения.bashrc
файла.Теперь последняя версия используется, когда вы используете
java
в оболочке.источник
source .bashrc
, чтобы перезагрузить содержимое .bashrc/usr/local/bin
следующим образом:sudo ln -sf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" /usr/local/bin/java
это предположение/usr/local/bin
раньше/usr/bin
в вашем,$PATH
которое должно быть по умолчанию.Для меня самый простой и чистый способ - установить Java с помощью homebrew, как описано здесь:
https://stackoverflow.com/a/28635465
источник
Основная проблема:
/usr/bin/java
указывает на тот, который изначально был предоставлен самой OSX (/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
) Нам нужно указать на тот, который загружен установщиком JDK. Ниже приведены шаги для OSX 10.10.4 Yosemite.Path
элемент и скопируйте путь (cmd + c). Это последняя версия, установленная установщиком / обновителем JDK. В моем случае путь был/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
ln -s
команда) двоичный файл системы Java на самый последний, который мы обнаружили на предыдущем шаге. Запустите следующую команду:sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java
Это оно. Для проверки вы можете просто запустить
java -version
на терминале. Должна появиться последняя версия, которую вы установили / обновили.источник
usr/local/bin
вместоusr/bin
терминальной командыВы можете выполнить следующую команду в своем терминале:
И это заменяет старый Java новым.
источник
source ~/.bashrc
чтобы сделать его постояннымя сделал
и это исправило мою проблему с Java 8.
перед:
после:
источник
/usr/libexec/java_home
очень хороший показатель, спасибо!http://www.java.com/en/download/faq/java_mac.xml - это хорошее место для понимания, пока Apple прекращает поддержку Java, почему предпочтения Java больше не существуют и полагаются на System_Preferences => Java = > Java, если установлена Java 7 от Oracle.
источник
Могу ли я предложить вам взглянуть на инструмент Jenv
Это позволит вам в любое время переключаться между установленными JVM.
Просто как:
затем позже для целей тестирования:
И у вас есть гораздо больше доступных команд.
источник
Жесткое кодирование пути JAVA_HOME может быть не самой лучшей идеей. У
/usr/libexec/java_home
меня подоконник работает на Mac OSX Lion 10.7.5 и JDK 1.7.0_13. Согласно справочной странице, она предназначена для использования со старой панелью Java Preferences от Apple, но, похоже, она работает с заменой, предоставленной Oracle (Java Control Panel). Например, работает/usr/libexec/java_home -V
список всех установленных JDK (как 1.6. * И 1.7. *) На моем компьютере.Итак, как обсуждалось в других темах (например, Что я должен установить для JAVA_HOME в OSX ), я все равно рекомендовал бы добавить следующую строку в ваш .bash_profile:
источник
/usr/libexec/java_home
утилита предназначена , чтобы работать также с Java 7 версий, и он возвращает путь к самой дате вверх к установленной JDK. Он отлично работает на моей машине.Это чокнутый! Как Oracle предоставляет установщик, который ничего не устанавливает !?
В любом случае для меня это было:
где 1.8.0_31 - ваша установленная версия Java ...
источник
В случае, если у вас есть несколько версий Java на вашем компьютере, и вы хотите выбрать его динамически во время выполнения, т.е. в моем случае у меня есть две версии:
Вы можете изменить их, изменив содержимое / etc / profile. Просто добавьте (или измените) следующие две строки в конце файла:
В моем случае это должно быть похоже на следующее, если я хочу использовать:
Java 7:
Java 8:
После сохранения файла, пожалуйста, запустите
source /etc/profile
и он должен работать. Вот результаты, когда я использую первый и второй вариант соответственно:Java 7:
Java 8:
Процесс аналогичен, если ваша папка Java находится в разных местах.
источник
Простое решение
источник
Я думаю, что вы можете попробовать установить JDK не JRE. При установке jdk, java в / usr / bin / java будет заменен, и вся библиотека будет работать нормально.
источник
Если у вас установлен Homebrew, вы можете установить java-switcher для более быстрого изменения версии Java по умолчанию
Затем вы можете использовать только одну команду для переключения версии Java по умолчанию.
или
источник
Вы можете запустить эту команду, чтобы найти версию Java в / Library / Internet Plugins /:
источник
Это происходит потому, что ваш .bash_profile не отражает изменения. Чтобы отразить это, просто используйте следующую команду
источник
Поскольку я не сталкивался с этой проблемой, я догадываюсь -
Можете ли вы попробовать это:
Где мягкая ссылка "java_home" указывает на:
Вывод: (с задержкой) lrwxr-xr-x java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home
** ls -lrt /System/Library/Frameworks/JavaVM.framework/Versions My MAC Производит следующее:
Исходя из этого, мы могли бы получить подсказку, чтобы продолжить?
источник
я решил эту проблему, переустановив Yosemite, а затем перепроверьте версию Java на терминале (java -version) и (javac -version). Теперь он работает отлично. Он не меняется на Java 7, так как версия 6 все еще присутствует в (команда + n ) libray> java> javavirtualmachine> ваша текущая версия javac. вам нужно обратиться к java home.
источник
Я решил эту проблему с
sudo rm /usr/bin/java
И я скачал и установил последнюю среду выполнения Java SE: http://www.oracle.com/technetwork/java/javase/downloads/index.html
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java
не работал для меня, потому что я получилOperation not permitted
. El Capitan теперь защищает определенные системные каталоги в режиме «без рута» (он же System Integrity Protection). Это применимо к macOS Sierra и, возможно, к новым версиям macOS в обозримом будущем.источник
Установка через распределенную JDK DMG с сайта Oracle автоматически обновляет все для меня. Я видел (в El Capitan) обновление через
System Preferences > Java
do update, но это не отражается на командной строке. Установка через DMG делает свою работу.источник
Проверьте установленные версии JDK:
Теперь в вашем
~/.bashrc
экспортеJAVA_HOME
указывается версия:Исходный файл bashrc и версия Java будут обновлены:
источник
Новейший 100% эффективный метод:
в bash:
Добавить
:wq
сохранитьjava -version
Но на самом деле этот путь указывает на JRE не JDK.
Если вы хотите указать путь к JDK, вам нужно
PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk"
, вы можете перейти к/Library/Java/JavaVirtualMachines
той версии JDK, на которую вы рассчитывали.источник