Де встановлена ​​Java на Mac OS X?


726

Я просто скачав Java 7u17 на Mac OS 10.7.5 від тут і потім успішно встановили. Для того, щоб зробити якесь програмування JNI, мені потрібно знати, де Java встановлена ​​на моєму Mac.

Я думав, що всередині /Library/Java/JavaVirtualMachines/папки буде папка з назвою 1.7.0.jdkчи щось, але потім я виявив, що папка порожня. Це було підтверджено запуском ls /Library/Java/JavaVirtualMachines/у Терміналі. Я намагався шукати його, щоб дізнатись, чи встановлений він десь ще, але це, здається, нічого не повертає.

Невже хтось скаже мені, де на моєму Mac встановлено Java?


12
Закрити виборців / членів групи - це питання явно не є темою (питання про інструменти, якими зазвичай користуються програмісти) . На жаль, це було обтяжене мета .
Роб

Відповіді:


1384

Використовуйте /usr/libexec/java_home -v 1.8команду на оболонці термінала, щоб визначити, де знаходиться ваш домашній каталог Java 1.8

Якщо ви просто хочете дізнатись домашній каталог останньої версії Java, опустіть її. напр/usr/libexec/java_home


Я дійшов до цього питання, тому що я отримував помилку в затемненні на своєму mac, тому що я отримував помилку в першому рядку програми "import java.util. *." Я сильно підозрюю, що це тому, що шлях до Java не встановлений правильно або щось подібне (навіть якщо я налаштовував це один раз раніше). Я вписав команду в цій відповіді і отримую каталог. Чи можу я просто вставити цей каталог у текстове поле у ​​вікні "Конфігурація папки" Рідна бібліотека "? Або цей каталог належить десь ще?
OKGimmeMoney

47
Додано export JAVA_HOME=`/usr/libexec/java_home`до .bash_profile, тому JAVA_HOME завжди встановлюється (зверніть увагу на зворотні тики навколо команди libexec)
Стів Хенті

Якщо ви просто хочете дізнатися, чи встановлений JDK на вашому mac, опустіть номер версії та запустіть з терміналу: $ echo $ (/ usr / libexec / java_home)
Donato

3
На Mac 10.12.3 нам слід /usr/libexec/java_home -- vпоказати найновішу версію Java
klion26

116

Ви можете використовувати echo $(/usr/libexec/java_home)команду у своєму терміналі, щоб знати шлях, де встановлюється Java.


7
Мені подобається це рішення краще, ніж прийнята відповідь, оскільки воно не залежить від встановленої версії JVM.
Олександр Сантос,

1
Це не знайшло мою версію Java 8, встановлену Oracle.
Антуан Лізе

13
Чому у вас echo $(...)там? Це не просто /usr/libexec/java_homeтак?
Paŭlo Ebermann

1
Прийнята відповідь не працювала для мене, але це спрацювало! (Я зазвичай не користувач Mac / Unix)
Roel

@ PaŭloEbermann Для мене це не працює без долярських знаків і дужок.
Микола Стоякович

80

Виявляється, у мене фактично був встановлений Java 7 JRE, а не JDK. Правильне посилання для завантаження тут . Після його встановлення jdk1.7.0jdkвідображається в каталозі JavaVirtualMachines.


49
Для мене це було під /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk(знаючи , що для JDK 1.6 шлях: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/)
Закарія

Дуже дякую! Я не помітив, що у мене JRE був встановлений випадково або xD
Олівер Ні

1
експортувати JAVA_HOME = $ (/ usr / libexec / java_home) в ~ / .bash_profile
Олексій

35

Якщо ви встановите лише JRE, він, здається, поставлений на:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

1
Не варто покладатися на це існуюче. Якщо вам потрібен JRE, зв’яжіть всередині власної програми.
гойдалка

Налаштування JAVA_HOME з доріжкою, що містить пробіл, є складним завданням! Мені це не вдалося ...
Антуан Россет

ви можете десь створити посилання на цей каталог і встановити JAVA_HOME на це посилання
Kuba

Ось тут, здається, панель системних налаштувань «Java» встановлює її.
Девід Авендасора

2
@AntoineRosset ви можете встановити це так:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
coda

24

Використовуйте функцію пошуку Unix, щоб знайти встановлений Java ...

sudo find / -name java

19
Не потрібно судо для запуску знаходження для загальнодоступних команд. Якщо ви не хочете бачити повідомлення про помилки щодо важкодоступних каталогів, позбавляйтеся від повідомлень, а не використовуйте root-приватні файли без потреби. Використовувати судо весь час - шкідлива звичка. Перенаправити stderr на / dev / null, як це: find / -name java 2> / dev / null
Walter Underwood

1
Що мені робити, якщо мені потрібно занадто заглянути в важкодоступні каталоги?
serkan

2
Точка Уолтера полягає в тому, що javaдвійкові дані будуть читатими у всьому світі, тому sudoце не потрібно. Ваша відповідь все ще корисна :)
Джаред Бек

Так, я просто використав це, щоб знайти src.zip (вихідний код java jdk)
Дініс Крус

експортувати JAVA_HOME = $ (/ usr / libexec / java_home) в ~ / .bash_profile
Олексій

22

Спробуйте це, це простий спосіб знайти шлях, встановлений Java в Mac OS X,

Йти до

1) / Бібліотека, тобто Macintosh HD / Library

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

2) Клацніть на Бібліотеку, в якій ми знаходимо папку Java.

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

3) Отже, кінцевий шлях є

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Сподіваюся, що це комусь допомога.


1
Дуже корисно, коли вам доведеться чітко вказати JDK з IDE. Спасибі
Шватаб Шехар

Наскільки я щільний? Мій термінал говорить про те, що у мене встановлено 2 jdk в / Бібліотека / Java / JavaVirtualMachines /, але я не можу їх знайти, коли переходжу до цього каталогу в пошуку ... Наскільки щільно я можу отримати ...
SoftwareSavant

@SoftwareSavant, будь ласка вих stackoverflow.com/a/14875241 відповідь, це може бути допомогти вам.
Jaywant Khedkar

19

Структура пакету Java Mac OS трохи відрізняється від Windows. Не варто засмучуватися з цього приводу, як розробник просто повинен встановити PATHі JAVA_HOME.

Так у .bash_profileнаборі JAVA_HOMEі PATHяк нижче. Цей приклад для Java 6:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH

12
Це видаляє про все інше зі шляху? Робіть це лише в тому випадку, якщо ви використовуєте лише Java та нічого іншого у вашій системі.
Paŭlo Ebermann

експортувати JAVA_HOME = $ (/ usr / libexec / java_home) у ~ / .bash_profile.
Олексій

17

Якщо ви введете

java -verbose 

Це також дає місце, з якого банки завантажуються, а отже, і шлях до Java.


Я додав експорт JAVA_HOME = $ (/ usr / libexec / java_home) у ~ / .bash_profile.
Олексій

8

Відредаговано: Псевдонім до поточної версії Java є /Library/Java/Home

Для отримання додаткової інформації: посилання


Це був би псевдонім для останньої версії, який би правильно вказував на Java 7 SDK після її встановлення.
Грім

1
Це посилання існує лише для застарілих цілей і не оновлюватиметься встановленням Java 7. Не використовуйте цей шлях.
гойдалка

Я оновив експорт JAVA_HOME = $ (/ usr / libexec / java_home) у ~ / .bash_profile.
Олексій

8

просто напишіть /Library/Java/JavaVirtualMachines/
у Перейдіть до папки -> Перейдіть у Finder


ОК, я просто спробував це, і мені вдалося перейти до каталогу. Чому я не можу нормально перейти до цієї папки в Finder? Це тільки Apple додатково дратує ... Також додатково дратує, версія Gradle 4.3 не працює з жодною версією Java, крім Java 8
SoftwareSavant

експортувати JAVA_HOME = $ (/ usr / libexec / java_home) у ~ / .bash_profile
Олексій

6

Я тільки що встановив JDK для версії 21 Java SE 7 і виявив, що він встановлений в іншому каталозі, ніж Java Java Apple 6. Це в / Бібліотека / Java ... а не в / Система / Бібліотека / Java ... Запуск / usr / libexec / java_home -v 1.7 проти -v 1.6 підтвердить це.


експортувати JAVA_HOME = $ (/ usr / libexec / java_home) в ~ / .bash_profile
Олексій

6

Я спробував рішення серкана, він виявив розташування java 7 на OS X Mavericks. він розміщений, "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" але щоб зробити його JDK за замовчуванням, мені довелося встановити системну змінну JAVA_HOME в .bash_profile в домашній каталог, щоб "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" вона працювала і працює зараз завдяки ідеї serkan


експортувати JAVA_HOME = $ (/ usr / libexec / java_home) у ~ / .bash_profile.
Олексій

5

Для:

  • ОС X: 10.11.6

  • Ява: 8

Я підтверджую відповідь @Morrie.

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;

Але якщо ви використовуєте контейнери, ваше життя буде простішим


2
Я думаю, це повинен був бути коментарем.
Грім

1
Я не думаю, тому що є додаткове значення, яке є "export JAVA_HOME =`. ... Що з тобою @Thunderforge
Abdennour TOUMI

експортувати JAVA_HOME = $ (/ usr / libexec / java_home) у ~ / .bash_profile.
Олексій


-1

Система Налаштування, потім панель управління Java, потім Java, а потім View, покаже точне місце встановленого на даний момент JRE за замовчуванням.


експортувати JAVA_HOME = $ (/ usr / libexec / java_home) в ~ / .bash_profile
Олексій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.