如何在Mac OSX上增加Java的全局堆大小

7
苹果已经决定将Java Preferences应用程序从Utilities文件夹中删除,因此不再有图形用户界面来增加Java的内存限制。如果我不了解命令行,则无法进行操作。我的一些应用程序需要大量的内存分配,在这台机器上运行了16GB的RAM,因此我不担心在运行这些应用程序时运行其他应用程序,更不用说我很少运行这些应用程序。我想将允许的内存限制增加到6144m,但我不知道正确的方法。以下是我找到的代码,但在运行它并检查我的Activity Monitor后,相关应用程序仍然只能访问约800m,最终会使用堆并崩溃。
export _JAVA_OPTIONS='-Xmx6144m'

请问有人能帮我解决这个问题吗?


你如何启动应用程序?通常可以在那里传递JVM参数。 - doublesharp
应用程序可以像平常一样通过双击图标来启动。 - secondman
如果您右键或按Ctrl单击应用程序并选择“查看包内容”,则可能有一个配置文件,您可以在其中设置jvm选项,通常为ini格式。对于Eclipse,它是Content> MacOS> eclipse.ini,因此您的应用程序可能类似。 - doublesharp
很棒,那是个好提示,在那里有一个包含分配设置的 .plist 文件...但是...如果我更改它们,它就完全无法启动。我想也许这与它是32位应用程序和1GB内存限制有关? - secondman
32位应用程序应该有2GB的限制,但也有开销。尝试使用1.7G看看是否可行。 - doublesharp
2个回答

3

从这篇关于缺失Java首选项的文章中可以看出,在最近的更新后,您可以下载Java 1.7,然后在系统偏好设置下访问Oracle的Java首选项。

请注意,您的应用程序可能会或可能不会在Java 1.7下运行 - 升级始终存在风险。


好的,既然我无法使用32位应用程序访问1.7 64位JVM,或者至少不能使用这些方式访问,我已经将Xmx更改为2048,这是它可以承受的最高值,并且仍然可以启动。希望这足以为我所需的工作提供足够的支持。 - secondman

1
诀窍是编辑/etc/launchd.conf(您需要以管理员身份执行此操作); 添加
setenv _JAVA_OPTIONS "-Xmx6144m"

请注意,这在MacOS 10.10及以上版本上不起作用,需要您改为使用this

1
那些是Windows选项,不是Mac的。 - doublesharp
是的,它仍然只能在活动监视器中达到945m,并且无法超越。@doublesharp,你知道Mac的等效物是什么吗?这是产品创建者网站上推荐的Mac设置。 - secondman
可悲的是,自从 macOS 10.10 版本以后,由于安全原因,launchd.conf 不再是一个选项了(已被移除)。 - user719662

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接