解释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首选项"即可