Установка Java на OS X 10.9 (Mavericks)

321

Я установил JDK на Mac OS X v10.8 (Mountain Lion). Когда я обновил его до Mac OS X v10.9 (Mavericks) и запустил java -versionв терминале, он показал:

Нет времени выполнения Java, запрос на установку.

Затем я вручную установил JDK (1.7) на свой Mac. Похоже, установка работала нормально. Когда установка была завершена, я открыл терминал и набрал java -versionтакже. Это также показало ту же ошибку:

Нет времени выполнения Java, запрос на установку.

Как я могу решить эту проблему?

user2909913
источник
1
Я не знаю, какая проблема в терминале, но я запускаю eclipse, и все проекты прекрасно компилируются в mavericks
Sunny
1
кажется, что старый java launcher поддерживает только jdk 1.6, но у mavericks по умолчанию не установлено 1.6.
Шон
1
Вы установили Java 6, а не Java 7, так как OP изначально подразумевал, что они нужны. Мне интересно, как это решение достигнуто. Также здесь должен быть подход «альтернативы», который напрямую обращается к обратной связи от терминала.
Рондо
4
Это отлично подходит для Java 6, но как вы можете заставить работать Java 7?
190290000 Рубль Человек
2
Добавлен потенциальный ответ, чтобы установить Java 7 JRE и заставить его работать в Терминале: stackoverflow.com/a/19582689/346286
аналог

Ответы:

279

Новые Mavericks (10.9) показали мне «Запрос на установку», но ничего не произошло.

Решением было вручную загрузить и установить официальный пакет Java для OS X, который находится в Java для OS X 2013-005,

Обновление: как упомянуто в комментариях ниже, есть более новая версия этого же пакета:

Java для OS X 2014-001

Java для OS X 2014-001 (исправление мертвой строки выше)

Java для OS X 2014-001 включает улучшения установки и заменяет все предыдущие версии Java для OS X. Этот пакет устанавливает ту же версию Java 6, которая включена в Java для OS X 2013-005.

парень
источник
Мне то же. Другой вариант - установить Java из Oracle. Как вы думаете, кто из них лучше? Похоже, что Oracle обновляет Java быстрее, чем Apple.
Нгок Фам
2
но этот дает вам JDK 6. как мы можем использовать JDK 6 напрямую?
Шон,
2
@Shawn Apple отключает уже установленный JDK 7. Но вы можете получить ответы на некоторые вопросы и установить их здесь: java.com/en/download/faq/java_mac.xml, но я не пробовал.
Парень
Если вы установили java6 и java7, вы можете выбрать v6 в своей оболочке с помощью: export JAVA_HOME = / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contents / Home
Jürgen Strobel
1
Почему вы хотите использовать 32-битную Java на 64-битной ОС? 64-битная Java на самом деле быстрее, чем 32-битная под Mavericks.
MiB
196

Если вы хотите установить только последнюю официальную JRE из Oracle, вы можете получить ее там, установить и экспортировать новый JAVA_HOME в терминал.

  • Откройте свой терминал
  • java -version выдает ошибку и всплывающее окно
  • Получить DREG JRE на http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • Установить его
  • В своем терминале введите: export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
  • java -version теперь дает вам java version "1.7.0_45"

Это самый простой способ установить последнюю версию JRE.

Вы можете добавить export JAVA_HOMEстроку в вашем, .bashrcчтобы иметь javaпостоянно в вашем терминале:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc
аналог
источник
37
Я думаю, что это звучит немного странно, чтобы определить, JAVA_HOMEчто явно является плагином для браузера вместо реальной виртуальной машины. При установке инструментов командной строки XCode, вы получаете инструмент для получения правильного пути, /usr/libexec/java_home. См. Developer.apple.com/library/mac/documentation/Darwin/Reference/… .
Илкка
8
@Ilkka - звучит странно, но на самом деле JRE Oracle устанавливает. Ява от Apple (которая останавливается на ява 6) не смешивается с оракулом так же хорошо, как хотелось бы
Орион Эдвардс
12
Мой коллега (который, к сожалению, не имеет необходимой репутации здесь, чтобы добавлять комментарии) хочет добавить, что настройка JAVA_HOME должна бытьexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Stephan Windmüller
1
Я установил jdk7u45 из Oracle и все еще использую export JAVA_HOME = $ (/ usr / libexec / java_home) в своем профиле bash. JDK7U45 работает очень хорошо, включая панель настроек системы Java. Сейчас я обновляюсь до jdk7u51.
MiB
2
Мне пришлось добавить export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"в ~ / .profile вместо ~ / .bashrc или ~ / .bash_profile, чтобы получить эту работу.
LarS
64

Правильное место для загрузки JDK для Java 7 - Java SE Downloads .

Все другие ссылки , представленные выше, насколько я могу судить, либо предоставить JRE или Java 6 загрузок (кстати, если вы хотите запустить Eclipse , или другие Иды, как IntelliJ IDEA , вам понадобится JDK, не JRE ).

Что касается IntelliJ IDEA - он все равно попросит вас установить Java 6, так как ему, очевидно, нужен старый загрузчик классов или что-то в этом роде: просто следуйте инструкциям, когда появится всплывающее диалоговое окно, и он установит JDK 6 в нужном месте.

После этого вам нужно будет сделать sudo ln -snfупомянутое в ответе выше:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(скопировано здесь, как было упомянуто, что «выше» может в конечном итоге не иметь смысла, так как ответы пересортированы).

Я также установил мой, JAVA_HOMEчтобы указать, где jdk_1.7.0_xx.jdkбыл установлен:

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

Затем добавьте это к вашему PATH:

export PATH=$JAVA_HOME/bin:$PATH

Альтернатива состоит в том, чтобы суетиться с безумным лабиринтом гиперссылок Apple, но, честно говоря, жизнь слишком коротка, чтобы беспокоиться.

Марко Массенцио
источник
4
Смотрите мой комментарий к другому ответу о том, что, возможно, является лучшим способом получить этот путь.
Илкка
1
Поскольку в этом ответе больше голосов, часть, которая говорит sudo ln -snfв ответе выше, больше не точна. Это фактически относится к ответу г-на Рональда
Картика Рагхупати
@KarthicRaghupathi Я не уверен, что полностью понимаю комментарий (использование thisи thatнесколько сбивает с толку), но вам все еще нужна символическая ссылка из места / Sytem / Library / etc в фактическое место, где Oracle устанавливает JVM (/ Library / etc .) или приложения не смогут найти среду выполнения Java.
Марко Массенцио
@Marco Теперь, когда вы упоминаете об этом, когда я читаю свой собственный комментарий, это не имеет особого смысла. :) Разрешите уточнить. В своем ответе вы пишете: «После этого вам нужно будет сделать то, что sudo ln -snfупомянуто в ответе выше;». Ответы перемещаются вверх или вниз в зависимости от количества полученных голосов. Я намеревался предоставить только прямую ссылку на ответ, который имел sudo ln -snfкоманду.
Картих Рагхупати,
Отредактировано - но на самом деле не уверен, что переупорядочение действительно происходит: все они, кажется, там, где они были, независимо от голосов. NVM
Марко Массенцио
14

Я скачал и установил JDK 1.7 из Oracle . В консоли / в терминале Java 7 работает нормально.

Когда я запускаю Java-программу (например, Eclipse ) через графический интерфейс, я получаю:

Чтобы открыть «Eclipse.app», вам нужна среда выполнения Java SE 6. Хотите установить один сейчас?

Поскольку я не хотел устанавливать старую версию Java, я использовал следующий обходной путь:

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

Кредиты для monkehWorks .

Мистер рональд
источник
1
Мне нужно использовать, ln -snfпотому что я получил Operation not permittedсln -sf
Ларс Блумберг
Спасибо, я отредактировал ответ и добавил опцию -n к команде ln.
г-н Рональд
+1 Именно то, что я искал. Спасибо! CLI получал ссылку на JDK 7 после установки. Однако, чтобы заставить приложения с графическим интерфейсом подобрать правильный JDK, этот шаг был необходим.
Картих Рагхупати
Было многообещающим, но это не сработало для меня. Android Studio 0.3.2 настаивает на «загрузке Java 6», чего я не собираюсь делать. Oracle Java 7 JDK установлен.
akauppi
Вам нужна 64-битная версия Eclipse. 32-разрядная версия требует Apple Java.
Турбьёрн Равн Андерсен
4

Эта ошибка возникает из-за того, что для plist-файла IntelliJ IDEA требуется Java версии 1.6 *. Чтобы решить эту проблему, замените 1.6 * на 1.8 *.

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>
Фабио Фумарола
источник
Это сделало это для меня. Моя проблема была, когда я обновился до OSX 10.9, я все еще мог получить доступ к Java из терминала и все остальное (в том числе Eclipse работал нормально). Только Android Studio была причиной этой ошибки.
ucsunil
Это не сработало для меня в OS X 10.10.1, он жалуется, что версия 1.8 недоступна (даже если JRE 8 установлен правильно).
Эммануэль Бур
Вы проверяли, установлен ли JAVA_HOME?
Фабио Фумарола
3

ОП подразумевал, что Java 7 была необходимостью. А Java 6 на самом деле больше не поддерживается, поэтому 7 - это версия, которую вы должны установить на этом этапе, если у вас нет проблем с устаревшими приложениями.

Вы можете получить его здесь: http://java.com/en/download/mac_download.jsp?locale=en

Рондо
источник
Мы не должны предполагать, что текущее распространение Apple 6 Java не поддерживается.
Грэм Перрин
Я поместил слово «поддерживается» в кавычки, чтобы не пытаться выявить сложную проблему. Oracle взимает плату за любую поддержку 6 ... и эта плата за поддержку логически применима и к Apple; Таким образом, Apple «самостоятельно» без контракта. У них есть, и планируете ли работать через патчи для MacOSX? Контракт все еще разрешает перераспределение? С момента последнего обновления Apple до 6 было выпущено 2 обновления Java 7 от Oracle. Предположение, возможно; Безопасное предположение? Кажется, так.
Рондо
3

Мой опыт обновления Java SDK на OS X 10.9 был намного проще.

Я скачал последнюю версию Java SE Development Kit 8из SE загрузок и установил файл .dmg. А при наборе java -versionв терминале отображалось следующее:

Java-версия "1.8.0_11"

Java (TM) SE Runtime Environment (сборка 1.8.0_11-b12)

Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 25.11-b03, смешанный режим)

Мухаммед Реда
источник
1

Из ОП:

Я наконец переустановил его с Java для OS X 2013-005. Это решило эту проблему.

Эрик Лещинский
источник
1

Эта ошибка означает, что Java установлена ​​неправильно.

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - Что такое бочка? Homebrew-Cask расширяет Homebrew и решает проблему выполнения дополнительной команды - «Чтобы установить, перетащите этот значок…» после установки приложения с помощью Homebrew .

NB - Эта проблема не является специфической для Mavericks, вы получите ее почти на всех OS X, включая EL Capitan.

sapy
источник
0

Нет необходимости устанавливать JDK, который является набором разработчика , просто JRE, который является средой выполнения .

ДМЗ
источник
6
Это правда. Тем не менее, Apple предоставляет JDK, а JRE от Oracle предназначена только для интернет-плагина. Эта javaкоманда не связана автоматически в масштабе всей системы, поэтому вы по-прежнему видите «Нет времени выполнения Java, запрашивающего установку». когда вы печатаете java -versionв терминале.
Нгок Фам