OSX(Mavericks)上的 Java/JDK 文件系统组织

OSX(Mavericks)上的 Java/JDK 文件系统组织

如果你通过 Oracle DMG 安装 JDK,则会得到以下内容

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

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

这两个目录中的二进制文件基本上是完全重复的,并且它们之间不是符号/硬链接。在后一种情况下,当前目录是指向同一级别的 A 目录的符号链接。但是,这并不能解释这与前一个目录 ( /Libraray/Java/...) 有何关联。

/usr/bin/java*/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/...

坦白说,这真是一团糟——为什么会这样?

相关内容