Почему «java» является допустимой командой в терминале (bash), если ее нет в моем пути?

2

На OSX, в терминале, используя команду:

echo $PATH

Дает мне следующий вывод:

/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local / bin: / usr / local / git / bin: / Applications / Android Studio.app/sdk/platform-tools

Вы можете видеть, что ссылка на JAVA там, где нет. Еще в терминале, когда я печатаю:

java

Это замечено как действительная команда и результаты:

Использование: java [-options] class [args ...]              (выполнить класс)      или java [-опции] -jar jarfile [аргументы ...]              (выполнить файл JAR)   где варианты включают в себя:       -d32 использовать 32-битную модель данных, если она доступна       -d64 использовать 64-битную модель данных, если она доступна       -сервер для выбора "серверной" виртуальной машины                     ВМ по умолчанию - сервер,                     потому что вы работаете на машине серверного класса.

Мой вопрос заключается в следующем: как она распознает мою команду java, если на нее нет ссылки в моей переменной PATH и на нее нет ссылки в каталоге, который в данный момент исследует мой терминал?

Спасибо вам за помощь.

Dick Lucas
источник
1
«С OS X вы знаете, что Java Runtime существует для ваших приложений, потому что оно встроено в операционную систему» Источник
Ƭᴇcʜιᴇ007

Ответы:

3

Java находится в / usr / bin в моей системе OSX 10.9.4:

$ which java
/usr/bin/java

Этот каталог также находится в вашем командном пути.

Запись в / usr / bin является символической ссылкой. Возможно, вы ожидали, что на вашем пути будет каталог установки Java, но это не обязательно так. Создание символических ссылок в / usr / bin является обычной практикой.

$ ls -l /usr/bin/java
lrwxr-xr-x  1 root  wheel  74 May 17 17:02 /usr/bin/java -> 
    /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
Kenster
источник
1
Кроме того, чтобы проверить все установленные и доступные JDK / SDK на MacOSX, используйте /usr/libexec/java_home -V команда.
Moreaki