Где Java установлена ​​в Mac OS X?

728

Я только что скачал Java 7u17 на Mac OS 10.7.5 отсюда, а затем успешно установил его. Чтобы заняться JNI-программированием, мне нужно знать, где Java установлена ​​на моем Mac.

Я думал, что внутри /Library/Java/JavaVirtualMachines/папки будет папка с именем 1.7.0.jdkили что-то, но потом я обнаружил, что папка пуста. Это было подтверждено бегом ls /Library/Java/JavaVirtualMachines/в Терминале. Я попытался найти его, чтобы выяснить, было ли оно установлено где-то еще, но, похоже, ничего не происходит.

Может кто-нибудь сказать мне, где Java установлена ​​на моем Mac?

Thunderforge
источник
12
Закрытие избирателей / повторное открытие - этот вопрос явно не вне темы (вопросы об инструментах, обычно используемых программистами) . К сожалению, это было побеждено мета .
Роб

Ответы:

1385

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

Если вы просто хотите узнать домашний каталог вашей последней версии Java, опустите версию. например/usr/libexec/java_home

gerrytan
источник
Я попал на этот вопрос, потому что у меня на Mac была ошибка в eclipse, потому что я получал сообщение об ошибке в первой строке программы "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
117

Вы можете использовать echo $(/usr/libexec/java_home)команду в своем терминале, чтобы узнать путь, где устанавливается Java.

Павитра Гунасекара
источник
7
Мне нравится это решение лучше, чем принятый ответ, потому что оно не зависит от версии установленной JVM.
Александр Сантос
1
Это не нашло мою версию Java 8, установленную Oracle.
Антуан Лизе
13
Почему у вас echo $(...)там? Разве не /usr/libexec/java_homeделает то же самое?
Пагло Эберманн
1
Принятый ответ не работал для меня, но это сработало! (Я обычно не пользователь Mac / Unix)
Роэл
@ PaŭloEbermann Для меня это не работает без знака и скобок.
Никола Стоякович
80

Оказывается, на самом деле у меня установлена ​​Java 7 JRE, а не JDK. Правильная ссылка для скачивания здесь . После его установки jdk1.7.0jdkпоявляется в каталоге JavaVirtualMachines.

Thunderforge
источник
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
Алексей Кислицын
34

Если вы устанавливаете только JRE, он, кажется, будет помещен в:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Морри
источник
2
Вы не должны полагаться на это существующее. Если вам нужна JRE, включите в свое собственное приложение.
свингер
Установка JAVA_HOME с путем, содержащим пробел, является сложной задачей! Мне не удалось ...
Антуан Россет
Вы можете создать где-нибудь ссылку на этот каталог и установить JAVA_HOME на эту ссылку
Куба
Здесь панель «Java» системных настроек, кажется, устанавливает ее.
Дэвид Авендасора
2
@ AntoineRosset, вы можете установить его следующим образом:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Coda
24

Используйте функцию unix find, чтобы найти установленный javas ...

sudo find / -name java
Серкан
источник
19
Вам не нужен sudo для запуска поиска для общедоступных команд. Если вы не хотите видеть сообщения об ошибках о недоступных каталогах, избавьтесь от этих сообщений, вместо того, чтобы без необходимости использовать корневые привилегии. Постоянное использование sudo - плохая привычка. Перенаправьте stderr в / dev / null следующим образом: find / -name java 2> / dev / null
Уолтер Андервуд,
1
Что мне делать, если мне тоже нужно заглянуть в недоступные каталоги?
Серкан
2
Суть Уолтера в том, что javaдвоичный файл будет читаемым, поэтому в sudoэтом нет необходимости. Ваш ответ все еще полезен :)
Джаред Бек
Да, я просто использовал это, чтобы найти src.zip (исходный код java jdk)
Динис Крус
экспорт JAVA_HOME = $ (/ usr / libexec / java_home) в ~ / .bash_profile
Алексей Кислицын
23

Попробуйте это, это простой способ найти путь установки Java в Mac OS X,

Перейти к

1) / Библиотека т.е. Macintosh HD / Библиотека

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

2) Нажмите на библиотеку, чтобы найти папку Java.

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

3) Итак, последний путь

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

Надеюсь, так что это помощь для кого-то.

Джейвант Хедкар
источник
1
Очень полезно, когда вам нужно явно указать JDK из IDE. Спасибо
Shwetabh Shekhar
Насколько я плотный? Мой терминал говорит, что у меня установлено 2 jdk в / Library / Java / JavaVirtualMachines /, но я не могу найти их, когда перехожу к этому каталогу в Finder ... Насколько я могу получить ...
SoftwareSavant
@ SoftwareSavant, пожалуйста, ref stackoverflow.com/a/14875241 ответ, это может быть вам помочь.
Джейвант Хедкар
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 и ничего больше в вашей системе.
Пагло Эберманн
экспорт 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

Для получения дополнительной информации: ссылка

Manny
источник
Это будет псевдоним для самой последней версии, которая будет правильно указывать на Java 7 SDK после его установки.
Thunderforge
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 и обнаружил, что он установлен в другом каталоге, чем Apple Java 6. Он находится в / Library / Java ... а не в / System / Library / 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/" чтобы она работала и теперь работает благодаря идее Серкана

Мехди
источник
экспорт JAVA_HOME = $ (/ usr / libexec / java_home) в ~ / .bash_profile.
Алексей Кислицын
5

За :

  • OS X: 10.11.6

  • Ява: 8

Я подтверждаю ответ @ Морри.

   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.
Алексей Кислицын
3

введите which javaтерминал, чтобы показать, где он установлен.

Праная Ариал
источник
1
Да, экспортировать JAVA_HOME = $ (/ usr / libexec / java_home) в ~ / .bash_profile.
Алексей Кислицын
-1

Системные настройки, затем панель управления Java, затем Java, затем View покажет точное местоположение установленной в настоящий момент JRE по умолчанию.

PaulNUK
источник
экспорт JAVA_HOME = $ (/ usr / libexec / java_home) в ~ / .bash_profile
Алексей Кислицын