解释Mac OSX Leopard上的JVM目录布局

时间:2020-03-06 14:54:14  来源:igfitidea点击:

这是与Leopard一起安装的目录布局。什么是" A"目录?为什么除了" CurrentJDK"之外还有"当前"目录?

看起来我们可以通过移动CurrentJDK链接轻松地切换当前JDK,但是Current和A下的内容将不同步。

lrwxr-xr-x  1 root  wheel    5 Jun 14 15:49 1.3 -> 1.3.1
drwxr-xr-x  3 root  wheel  102 Jan 14  2008 1.3.1
lrwxr-xr-x  1 root  wheel    5 Feb 21  2008 1.4 -> 1.4.2
lrwxr-xr-x  1 root  wheel    3 Jun 14 15:49 1.4.1 -> 1.4
drwxr-xr-x  8 root  wheel  272 Feb 21  2008 1.4.2
lrwxr-xr-x  1 root  wheel    5 Feb 21  2008 1.5 -> 1.5.0
drwxr-xr-x  8 root  wheel  272 Feb 21  2008 1.5.0
lrwxr-xr-x  1 root  wheel    5 Jun 14 15:49 1.6 -> 1.6.0
drwxr-xr-x  8 root  wheel  272 Jun 14 15:49 1.6.0
drwxr-xr-x  8 root  wheel  272 Jun 14 15:49 A
lrwxr-xr-x  1 root  wheel    1 Jun 14 15:49 Current -> A
lrwxr-xr-x  1 root  wheel    3 Jun 14 15:49 CurrentJDK -> 1.5
steve-mbp /System/Library/Frameworks/JavaVM.framework/Versions $

和A的内容

-rw-r--r--   1 root  wheel    1925 Feb 29  2008 CodeResources
drwxr-xr-x  34 root  wheel    1156 Jun 14 15:49 Commands
drwxr-xr-x   3 root  wheel     102 Mar  6  2008 Frameworks
drwxr-xr-x  16 root  wheel     544 Jun 14 15:49 Headers
-rwxr-xr-x   1 root  wheel  236080 Feb 29  2008 JavaVM
drwxr-xr-x  29 root  wheel     986 Jun 14 15:49 Resources
steve-mbp /System/Library/Frameworks/JavaVM.framework/Versions/A $

解决方案

(" A","当前"符号链接到" A")是Mac OS X框架结构的一部分,而JavaVM.framework是该框架的一部分。除了实际的JVM安装之外,此框架中可能还包含C或者Objective-C代码。因此,除了包含JVM之外,还可以将其与某些C或者Objective-C代码进行链接。

请注意,我们不应将" CurrentJDK"链接更改为指向Mac OS X所设置的内容,而是指向其他内容。与其他平台不同,Java虚拟机是Mac OS X上的一种操作系统服务,因此可以在其中进行更改。这样会使我们处于不受支持(可能未经测试,不稳定等)的配置中。

如果要恢复到较旧的JVM(此处为1.5),则可以将以下内容放入〜/ .profile中(或者将其粘贴到特定的Terminal窗口中):

export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/"
export PATH=$JAVA_HOME/bin/:$PATH

我们应该使用Java Preferences命令来更改jvm版本。

如果硬盘上有聚光灯,则只需聚光" Java首选项"即可