Встановлення 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 не вимагає встановлення.

Як я можу вирішити цю проблему?


1
Я не знаю, яка проблема в терміналі, але я запускаю затемнення, і всі проекти прекрасно складаються в мавериках
— Сонячний

1
Здається, старий Java-пускач підтримує лише 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 = / Система / Бібліотека / Java / JavaVirtualMachines / 1.6.0.jdk / Зміст / Головна
— Jürgen Strobel

1
Чому ви хочете використовувати 32-бітну Java на 64-бітній ОС? 64-бітний Java насправді швидше, ніж 32-бітний в Mavericks.
— МіБ

196

Якщо ви хочете встановити лише останню офіційну версію JRE від Oracle, ви можете отримати її там, встановити та експортувати новий JAVA_HOME в термінал.

  • Відкрийте свій термінал
  • java -version дає помилку та спливаюче вікно
  • Увімкніть JRE dmg 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що явно плагін браузера замість реального VM. При установці інструментів командного рядка XCode, ви отримуєте інструмент для отримання правильного шляху, /usr/libexec/java_home. Див. Розробник.apple.com/ library/mac/ documentation/ Darwin/ Reference/… .
— Ілька

8
@Ilkka - це звучить рибно, але саме там JRE Oracle встановлює. Ява Apple (яка зупиняється на java 6) не поєднується з оракулом настільки чудово, як може здатися
— Orion Edwards

12
Мій колега (який, на жаль, не має необхідної репутації тут, щоб додати коментарі) хоче додати, що налаштування JAVA_HOME має бутиexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
— Стефан Віндмюллер

1
Я встановив jdk7u45 від Oracle і досі використовую export JAVA_HOME = $ (/ usr / libexec / java_home) у своєму профілі bash. jdk7u45 дуже добре працює, включаючи панель налаштувань системи java. Тепер я переходжу до jdk7u51.
— МіБ

2
Мені довелося додати export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"до ~ / .profile замість ~ / .bashrc або ~ / .bash_profile, щоб отримати цю роботу.
— Ларс

64

Правильне місце для завантаження JDK для Java 7 - це завантаження Java SE .

Всі інші посилання , представлені вище, наскільки я можу судити, або надати 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 / тощо на фактичне місце, де Oracle встановлює JVM (/ Library / etc. .) або програми не зможуть знайти час виконання Java.
— Marco Massenzio

@Marco Тепер, коли ви це згадуєте, коли я читаю власний коментар, це насправді не має великого сенсу. :) Дозвольте мені уточнити. У своїй відповіді ви пишете "Згодом, вам потрібно буде виконати sudo ln -snfзгадане у відповіді вище;". Відповіді рухаються вгору або вниз залежно від кількості голосів, які вони отримують. Мій намір полягав у тому, щоб лише надати прямий посилання на відповідь, яка мала sudo ln -snfкоманду.
— Karthic Raghupathi

Відредаговано - але насправді не впевнене, що переупорядкування дійсно відбувається: вони, здається, є там, де вони були, незалежно від заявок. NVM
— Marco Massenzio

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
— Lars Блумберг

Thx, я відредагував відповідь і додав параметр -n до команди ln.
— Містер Рональд

+1 Саме те, що я шукав. Дякую! CLI отримував посилання на JDK 7 після встановлення. Однак для отримання програм GUI для підбору правильного JDK цей крок був необхідний.
— Картик Рагупаті

Сподівався, але це не спрацювало для мене. Android Studio 0.3.2 наполягає на "завантаженні Java 6", що я не збираюся робити. Встановлено Oracle Java 7 JDK.
— акауппі

Вам потрібна 64-бітна версія Eclipse. 32-розрядна вимагає Apple java.
— Thorbjørn Ravn Andersen

4

Ця помилка трапляється тому, що для файлу плістів 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 з терміналу і всього іншого (включаючи затемнення справно працював). Лише 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


Ми не повинні вважати, що поточний розподіл Java 6 від Apple не підтримується.
— Грем Перрін

Я поставив слово "підтримується" в лапки, щоб уникнути спроб дражнити складне питання. Плата Oracle за будь-яку підтримку 6 ... і ця плата за підтримку логічно поширюватиметься також на Apple; Таким чином, Apple "сама по собі" без договору. У них є такий, і планують працювати через патчі для MacOSX? Чи все-таки контракт допускає перерозподіл? Зараз від Oracle з'явилися 2 оновлення Java 7 з моменту останнього оновлення Apple до 6. Історично вони схильні до випуску крок із замиканням. Припущення, можливо; Безпечне припущення? Здається, так.
— Рондо

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)

64-бітний сервер VM сервера Java HotSpot (TM) (збірка 25.11-b03, змішаний режим)




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 .

Примітка. Ця проблема не стосується Mavericks, ви отримаєте її майже всю ОС X, включаючи EL Capitan.


0

Немає необхідності встановлювати JDK, який є набором для розробників , лише JRE, який є середовищем виконання .


6
Це правда. Однак, що Apple надає JDK, а JRE від Oracle є лише для Інтернет-плагіну, javaкоманда не пов'язана автоматично в масштабах всієї системи, тому ви все ще бачите "Немає часу виконання Java з проханням встановити". під час введення java -versionтерміналу.
— Нгок Фам
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.