Если вы устанавливаете JDK через Oracle DMG, вы получаете содержимое

/Library/Java/JavaVirtualMachines/jdk1.7.0_xx/Content/Home/bin

так же как

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/

В этих двух каталогах происходит полное дублирование двоичных файлов, и они не являются символическими / жесткими ссылками друг на друга. В последнем случае Current dir является символической ссылкой на A dir на том же уровне. Однако это не объясняет, как это относится к предыдущему каталогу (/Libraray/Java/...).

/usr/bin/java* is/ являются символическими ссылками на двоичные файлы в каталоге /System/Library/Frameworks/ .....

Есть ли какая-то рифма в том, почему именно так организована Java в OSX?

Итак, еще одно наблюдение:

> /usr /libexec /java_home

генерирует:

/Library/Java/JavaVirtualMachines/jdk1.7.0_65.jdk/Contents/Home

Таким образом, в то время как исполняемый файл /usr/bin/java указывает на расположение /System/Library/Framework/.... , сценарий java_home создает путь к домашнему каталогу в /Library/Java/JavaVirtualMachines/...

Откровенно говоря, это беспорядок - почему это так?

0