如何在Mac OSX 10.7 Lion上运行32位Java

时间:2011-08-04 13:14:18

标签: java macos 32-bit osx-lion

根据我使用Windows 7(64位)和Java的经验,32位JRE使用更少的内存并且运行速度明显快于64位JRE(假设您不需要或从拥有大量内存中受益)。我想同样的事情也适用于Mac OSX(和其他平台)。

我目前正在运行OSX Lion(v10.7),我已经安装了标准的Java应用程序。在Java Preferences下,我看到“Apple Inc.”中的“Java SE 6”对于两种CPU类型“32位”和“64位”版本“1.6.0_26-b03-383”。我已经更改了首选顺序,将32位版本置于64位版本之上,希望这会使32位版本成为默认版本。

但“java -version”仍然说:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511c)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)

默认情况下是否可以使用32位版本?怎么样?

此外,是否有人在32/64位版本之间有关于速度和内存效率的经验/比较测量?

5 个答案:

答案 0 :(得分:21)

我现在发现,可以使用-d32开关显式启动32位JVM。

在我的机器上,“java -version -d32”说:

java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511c)
Java HotSpot(TM) Client VM (build 20.1-b02-383, mixed mode)

虽然它没有这么说,但它是一个32位的JVM。

答案 1 :(得分:7)

最新版本的Java 64位默认情况下使用-XX:+ UseCompressedOops(如果堆小于32 GB)。这意味着在任何情况下都使用32位引用。对象仍然稍大(开销增加4个字节)

本文将32位64位与UseCompressedOops Java: How much memory do different arrays and collections consume

进行比较

在性能方面,我发现它取决于你正在做的事情是5-10%。如果使用大量long值,则使用64位会更快。

答案 2 :(得分:1)

进入“Java首选项”应用程序并将java 32位拖到列表顶部。

答案 3 :(得分:1)

尝试以下步骤:

  1. 打开终端并转至/System/Library/Frameworks/JavaVM.framework/Versions /
  2. 键入ls -l以列出所有可用的Java版本
  3. 输入sudo ln -fhsv CurrentJDK
  4. 参考:Changing Java Version

答案 4 :(得分:1)

/ pystem/Library/Frameworks/JavaVM.framework/Versions中的

我发现安装了1.6版并更改了java的路径,javac指向 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/home使用环境 别名而不是/ usr / bin /

中的默认链接
相关问题