Установленная Java 7 в Mac OS X, но Terminal по-прежнему использует версию 6

Я установил JDK 7u7, загруженный с сайта oracle. Но после установки терминал все еще показывает java-версию 6

$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.

Поскольку вам нужно войти в панель настроек Java и пометить только JVM 7 таким образом:

Настройки Java

Чтобы легко и быстро открыть панель « Предпочтения Java» в Mac OS X, вы можете просто вызвать spotlight с помощью + SPACE и ввести « Системные настройки», которые будут отображаться в последней строке windows.

Установщик Oracle помещает java в /Library/Internet Plug-Ins/JavaAppletPlugin.plugin . И он не перезаписывает /usr/bin/java . Итак, если вы

 whereis 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 на /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java :

 sudo rm /usr/bin/java sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin 

Установите JDK 7, и эта проблема решит сам.

Не забудьте получить Java Development Kit (JDK), который включает компиляторы и тому подобное, а не только Java Runtime Environment (JRE).

vi ~/.bash_profile

Добавить

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

Это указывает целевой /usr/bin/java link /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 на базе Java. Вышеупомянутое решение отлично работает с Mac OS X 10.8.2

В моем случае проблема заключалась в том, что Oracle устанавливал его в другое место, чем я привык.

Загрузить с Oracle: http://java.com/ru/download/mac_download.jsp?locale=en

  1. Убедитесь, что он установлен правильно, просмотрев System Prefs:

    • Command-Space, чтобы открыть Spotlight, введите «Системные настройки», нажмите enter.
    • Щелкните значок Java в нижней строке. После того, как откроется панель управления Java, перейдите на вкладку «Java», «Просмотреть …» и убедитесь, что ваша установка работала. Вы также можете увидеть «Путь», который вы можете добавить в приведенные ниже команды, если они отличаются от моих.
  2. Убедитесь, что версия такая, как вы ожидаете (sub в вашем пути по мере необходимости):

    / Библиотека / Интернет \ Плагины / JavaAppletPlugin.plugin / Содержание / Главная / bin / java -version

  3. Создайте ссылку на / usr / bin / java для новой установки

    sudo ln -fs / Библиотека / Интернет \ Плагины / JavaAppletPlugin.plugin / Содержание / Главная / bin / java / usr / bin / java

  4. Проверка работоспособности вашей версии:

    java -version

У меня возникла аналогичная проблема с терминалом, не обновляющим версию java, чтобы соответствовать версии, установленной на Mac.

Не было проблем с установленной переменной окружения JAVA_HOME

Я придумал временное и несколько болезненное, но работающее решение.

В вас .bash_profile добавьте строку:

 export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home" 

(Это путь на моей машине, но может отличаться от вашего, убедитесь, что вы получили ваши. Пути должны совпадать с / Library / Java / JavaVirtualMachines /)

source ~/.bash_profile запуска source ~/.bash_profile

Как я уже говорил, это временное решение для групповой поддержки, потому что исходный путь java жестко закодирован. На самом деле нет способа установить путь для получения последней информации, так как Apple якобы делает для терминала уже, и проблема в том, что переменная среды java_home Apple не обновляется.

Начиная с El Capitan, трудно удалить символическую ссылку /usr/bin/java из-за введения новой политики «без корней».

Поэтому я просто добавил путь к последней версии java (в моем случае это /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin ) в PATH в моем файле .bashrc :

 # Use latest java version export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH 

Чтобы перезагрузить файл .bashrc для текущего сеанса, запустите source ~/.bashrc в оболочке. Вам нужно сделать это только для сеансов, которые были запущены до изменения файла .bashrc .

Теперь используется последняя версия, когда вы используете java в оболочке.

Для меня самый простой и простой способ – установить Java с использованием homebrew, как описано здесь:

https://stackoverflow.com/a/28635465

 brew update brew cask install java 

Основная проблема: /usr/bin/java указывает на один, предоставленный самим OSX ( /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java ). Мы должны указать это на тот, который загружен Установщик JDK. Ниже приведены шаги для OSX 10.10.4 Yosemite.

  • Откройте Системные настройки -> выберите Java. Откроется окно Java.
  • Перейдите на вкладку Java вверху. Нажмите кнопку «Просмотр».
  • Вкладка «Параметры среды Java Runtime Environment» открывается, как показано ниже: Вкладка «Параметры JRE»
  • Дважды щелкните элемент « 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 на терминале. Он должен выводить последнюю версию, которую вы установили / обновили.

я сделал

 export JAVA_HOME=`/usr/libexec/java_home` 

и это исправило мою проблему с Java 8.

до:

 java version "1.6.0_31" Java(TM) SE Runtime Environment (build 1.6.0_31-b04) Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode) 

после:

 java version "1.8.0_05" Java(TM) SE Runtime Environment (build 1.8.0_05-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode) 

Вы можете выполнить следующую команду в своем терминале:

 export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH" 

И это заменяет старый java новым.

http://www.java.com/en/download/faq/java_mac.xml – это хорошее место для понимания, в то время как Apple прекращает поддержку Java, почему настройки Java больше не существуют и полагаются на System_Preferences => Java = > Java, если установлена ​​Java 7 из Oracle.

Могу ли я предложить вам взглянуть на инструмент Jenv

Это позволит вам переключаться в любое время между установленными JVM.

Просто как:

 jenv global oracle-1.7 

затем позже для целей тестирования:

 jenv global oracle-1.6 

И у вас есть гораздо больше доступных команд.

Жесткое кодирование пути JAVA_HOME может быть не лучшей идеей. Утилита /usr/libexec/java_home работает для меня на Mac OSX Lion 10.7.5 и JDK 1.7.0_13. Согласно его странице руководства, он предназначен для использования с старой панелью настроек Java Apple, но, похоже, она работает с заменой, предоставляемой Oracle (панель управления Java). Например, running /usr/libexec/java_home -V перечисляет все установленные JDK (и 1.6. * И 1.7. *) На моей машине.

Итак, как обсуждалось в других streamах (например, что мне нужно установить JAVA_HOME на OSX ), я бы порекомендовал добавить следующую строку в ваш .bash_profile:

 export JAVA_HOME=$(/usr/libexec/java_home) 

Это орехи! Как Oracle предоставляет установщик, который ничего не устанавливает !?

В любом случае для меня это было:

 sudo rm /usr/bin/java sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java 

где 1.8.0_31 – ваша установленная версия java …

Я думаю, вы можете попробовать установить jdk not jre. Установив jdk, java в / usr / bin / java будет заменен, и вся библиотека будет работать нормально.

Простое решение

 export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH" 

В случае, если на вашем компьютере несколько версий Java, и вы хотите динамически выбирать его во время выполнения, то есть в моем случае у меня есть две версии:

 ls -la /Library/Java/JavaVirtualMachines drwxr-xr-x 3 root wheel 96B Nov 16 2014 jdk1.7.0_71.jdk/ drwxr-xr-x 3 root wheel 96B Mar 1 2015 jdk1.8.0_31.jdk/ 

Вы можете изменить их, изменив содержимое / etc / profile. Просто добавьте (или измените) следующие две строки в конце файла:

 export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home export PATH=$JAVA_HOME/bin:$PATH 

В моем случае это должно выглядеть следующим образом, если я хочу использовать:

Java 7:

 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH 

Java 8:

 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH 

После сохранения файла, запустите source /etc/profile файл source /etc/profile и он должен работать. Вот результаты, когда я использую первый и второй варианты соответственно:

Java 7:

 java -version java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b14) 

Java 8:

 java -version java version "1.8.0_31" Java(TM) SE Runtime Environment (build 1.8.0_31-b13) 

Этот процесс аналогичен, если ваша папка java находится в разных местах.

Вы можете запустить эту команду, чтобы найти версию Java, которая находится под / Library / Internet Plugins /:

 defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion 

Поскольку я не сталкивался с этой проблемой, я склоняюсь к догадкам –

Не могли бы вы попробовать:

Где мягкая ссылка «java_home» указывает на:

 ls -lrt /usr/libexec/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 Мой MAC Создает следующее:

  lrwxr-xr-x CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents** lrwxr-xr-x Current -> A lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.6.0 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.6 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.5.0 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.5 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.4.2 -> CurrentJDK lrwxr-xr-x 1 root wheel 10 Oct 18 14:39 1.4 -> CurrentJDK 

Исходя из этого, мы можем получить намек на продолжение?

Я решил эту проблему, повторно установив 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 не сработало для меня, потому что я 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 в обозримом будущем.

Это происходит потому, что ваш .bash_profile не отражает изменений. Чтобы отразить это, просто используйте следующую команду

 $ source .bash_profile 

Установка через распределенный JDK DMG с сайта Oracle автоматически обновляет все для меня. Я видел (в El Capitan) обновление через System Preferences > Java обновления, но не соответствующие командной строке. Установка через DMG выполняет эту работу.

  • Как изменить папку установки Chrome на Mac?
  • Как установить Boost на MacOS?
  • Самый эффективный способ создания сетей на Mac / iPhone?
  • SandForce контроллер SSD Сбор мусора для систем без поддержки TRIM
  • Как я могу обмениваться файлами с Windows на Mac OS X?
  • Где находятся файлы .emacs в Snow Leopard?
  • Запись доступа к OSX HDD из Ubuntu
  • Получить имя активного пользователя в скрипте в Mac OS
  • Установка Maven на Mac OS X
  • Подключите внешний USB-накопитель в однопользовательском режиме
  • Исправить ухудшенную производительность SSD на Mac без полной стирания
  • Давайте будем гением компьютера.