Як встановити певний JDK на Mac OS X?


197

Я хочу встановити певний JDK (наприклад, останній). Для цього я перейшов на домашню сторінку завантаження JDK: http://java.sun.com/javase/downloads/index.jsp . Я шукав версію для Mac, але я трохи здивований, коли бачу тільки завантажувані версії для Linux, Windows та Solaris ...

Ось повідомлення для Mac:

"Apple Computer постачає власну версію Java. Використовуйте функцію оновлення програмного забезпечення (доступна в меню Apple), щоб перевірити, чи є у вас найновіша версія Java для вашого Mac."

Добре, але ... коли я оновлюю Java з Mac, у мене є JRE, а не JDK ...

Я не розумію, чому не існує версії JDK, яку легко завантажувати / встановлювати (як, наприклад, банку для розпакування?) Для Mac ...


70
Відоме запитання ... ви повинні прийняти відповідь. ;)
gary

Fink пропонує рішення для цього.
Даніель

10
Зауважте, що Java 7 тепер постачається Oracle - більшість відповідей і запитань стосуються більш раннього стану
мммммм,

Відповіді:


44

У коментарі під відповіддю @ Thilo @mobibob запитав, як встановити JAVA_HOME у вашому .bash_profile на Mac. Відповідь:

export JAVA_HOME=`/usr/libexec/java_home` 

Це динамічно призначить JAVA_HOME розташування першого JDK, переліченого на вкладці "Загальні" утиліти "Налаштування Java".

Дивіться технічні запитання щодо Apple 1170: https://developer.apple.com/library/content/qa/qa1170/_index.html

Редагувати:

Якщо ви віддаєте перевагу круглим дужкам для зворотних посилань для заміни команд, це також працює:

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

20

Як йдеться в повідомленні, вам потрібно перейти на Apple, а не Sun, на Java на Mac. Наскільки мені відомо, Apple JDK 6 встановлений за замовчуванням на Mac OS X 10.6 (Snow Leopard). Можливо, вам потрібно встановити інструменти для розробників з вашого інсталяційного DVD Mac OS X (інструменти розробника - це додаткова установка з DVD з ОС).

Дивіться: http://developer.apple.com/java/

ПРИМІТКА Ця відповідь від 16 жовтня 2009 року застаріла; ви можете отримати JDK для Mac OS X зі звичайної сторінки завантаження JDK на веб-сайті Oracle.



10

Я вчора купив MacBook Pro ( Mac OS X v10.8 (Mountain Lion)), і JDK не встановлений за замовчуванням ...

Як і javac, я також виявив, що в ньому не встановлено таких пакетів, як SVN . Виявляється, ви можете отримати все зі сторінки розробника Apple (вам потрібно буде зареєструватися у своєму AppleID). SVN є частиною пакету "Інструменти командного рядка".

Введіть тут опис зображення

Ось що відбувається у свіжому MacBook:

Введіть тут опис зображення

Введіть тут опис зображення

Сподіваюся, це допоможе іншим новачкам, як я;)


5
+1. Ситуація з гірським левом дещо змінилася. Також зауважте, що в той час, як Apple пропонує додаткові установки Java, це лише стара версія Java 6. Поточні версії Java для OS X зараз розповсюджуються самим Oracle.
Тіло


4

Пояснення полягає в тому, що JDK трохи специфічний і не містить бібліотечних інструментів.jar . Для моєї розробки мені потрібна ця бібліотека, і JDK Mac не надає її:

(Cf. http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/02-JavaDevTools/JavaDevTools.html )

tools.jar не існує. Заняття, які зазвичай розташовані тут, замість цього включаються до класів.jar. Сценарії, які покладаються на існування tools.jar, потрібно переписати відповідно.

Це смокче!


1
А-а-а-а !!! Як ви виявили, tools.jarвін уже включений у час виконання Mac OS X. Тож шукати tools.jarне правильний підхід на Mac, щоб знати, чи це JDK чи JRE :)
Pascal Thivent

Дякую за вашу відповідь, ви праві. Мені потрібно було отримати інструменти.jar для конкретного проекту, і для мене це був підхід до розпізнавання jdk;)
ajeanson

4

Найпростіший спосіб - це використання Homebrew . Встановіть Homebrew, а потім:

brew tap caskroom/versions
brew cask install java7

Ви можете перелічити всі доступні версії за допомогою наступної команди: brew cask search java


3

Компіляція з -source 1.5 -цільовою версією 1.5 (в середовищі JDK 6) буде вшановувати лише мовні елементи, які були в 1.5 та раніше. Чудово. Але жодних змін мови в 6 все одно не було. Проблема такого підходу (на Mac з 1.6) полягає в тому, що використання класів, які з'явилися ПІСЛЯ 1.5, все одно буде компілюватися, оскільки вони існують у rt.jar. Таким чином, можна працювати в 1.5 env і отримати клас не знайдений виняток без попереднього попередження при компілюванні. Я виявив це важким шляхом за допомогою javax.swing.event.RowSorterEvent / Listener. Обидва ввели "З 1.6", але не потрапляють з -ресурсом 1.5



3

Як і в Mac OS X v10.6 (Snow Leopard), ви можете запускати Java 6 в 32-бітному режимі або на 32-бітному, або на 64-бітному процесорі Intel, обладнаному Macs.

Якщо ви не можете оновити до Snow Leopard, Soy Latte є попередньо складеною версією Java 6 для 32-розрядної версії Intel.


3

Існують різні складні проблеми, пов’язані з наявністю декількох версій Java (власне Apple Java 6 та Oracle JDK 7 або навіть 8) в системі Mac OS X та використанням різних версій для різних додатків. Я витратив деякий час на написання свого досвіду мого досвіду встановлення та налаштування різних версій JDK на Mac OS X 10.9.2 .


1

Я думаю, що це інше питання переповнення стека може допомогти:

Як отримати JDK 1.5 на Mac OS X

Це в основному говорить про те, що якщо вам потрібно скомпілювати або виконати Java-програму зі старішою версією JDK (наприклад, 1.4 або 1.5), ви можете це зробити за допомогою 1.6, оскільки вона сумісна назад. Для цього вам потрібно буде додати параметр -source 1.5та / або -target 1.5в параметрах javac або у вашому IDE.


1

JDK - це Java Development Kit (використовується для розробки програмного забезпечення Java).

JRE - середовище виконання Java (використовується для запуску будь-якого .jar-файлу «програмне забезпечення Java»).

JDK містить JRE всередині нього.

У Windows під час оновлення Java він автоматично оновлює JRE.

У Mac у вас немає розділеного JRE у вас він є, але всередині JDK, тож при оновленні Java він оновлюватиме JRE, який знаходиться всередині вашого JDK; він не встановлює JDK для вас. Потрібно дістати його десь з іншого місця.


1
Я думаю, ви мали на увазі JDK замість IDK. Я спробував редагувати, але Stack Overflow сказав, що зміни повинні бути довші 6 символів. Просто згадуючи про це, щоб уникнути плутанини.
черв'як

1

Перевірте цей дивовижний інструмент sdkman для керування jdk та іншими інструментами, пов'язаними з jdk, з великою легкістю!

напр

$sdk list java
$sdk install java <VERSION>

1

Оскільки більшість відповідей застаріли, ось що працює станом на кінець 2018 року за умови, що це

  1. Ви хочете встановити GPL-версію OpenJDK. [0]
  2. Ви не хочете встановлювати Homebrew

У цьому випадку візьміть бажану версію з однієї з багатьох доступних, вільно доступних версій OpenJDK, наприклад:

Деякі з них включають інсталяторів, але якщо ні, то ви можете зробити наступне. Припускаючи тут версію 11.0.1 для Mac. У своїй улюбленій оболонці запустіть:

tar -xzf openjdk-11.0.1_osx-x64_bin.tar.gz
sudo mv jdk-11.0.1.jdk /Library/Java/JavaVirtualMachines
# Fix owner and group
sudo chown -R root:wheel /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk
# (Optional) Check if the new JDK can be found
/usr/libexec/java_home
=> /Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home

[0] Зауважте, що JDK з маркою Oracle має значні ліцензійні обмеження, що дозволяють використовувати її в основному лише для тестування, тобто не для виробництва. Якщо у вас немає угоди про підтримку з Oracle, тоді мені здається ризикованим використовувати їх JDK, тим більше, що відмінності до OpenJDK мінімальні .

Редагувати: додано більше варіантів


1
Я пропоную вам вказати на завантаження з AdoptOpenJDK.net , а потім дотримуватися ваших вказівок, тим самим уникаючи проблем із правовими та підтримками випусків Oracle.
Василь Бурк

0

Як правило, ви не можете встановлювати інші версії Java на Mac, ніж ті, які надає Apple через оновлення програмного забезпечення. Якщо вам потрібна Java 6, у вас повинен бути 64-розрядний комп'ютер Intel. У вас завжди має бути встановлена ​​Java 5 і 1.4 і, можливо, 1.3, якщо у вас принаймні ОС X 10.4.

Якщо у вас ДУЖЕ багато жиру в ліктях і готовий працювати з бета-програмою, ви можете встановити OpenJDK під ОС X, але я не думаю, що ви хочете туди їхати.


Я знаю, тому я додав цей коментар. Можливо, варто було б написати трохи довший коментар, щоб перейти за посиланням :-)
Neeme Praks
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.