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