Если вы устанавливаете 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/...
Откровенно говоря, это беспорядок - почему так?