有没有办法以编程方式设置max java堆大小而不是vm参数?
类似的东西:
System.getProperties().put("<heap variable>", "1000m");
答案 0 :(得分:7)
没有任何热点JVM。 JVM堆参数只能在命令行中指定,然后在JVM的生命周期内修复。
使用Hotspot Java实现,“更改”应用程序堆大小的唯一方法是在具有不同命令行参数的新JVM中重新启动它。
(我模糊地回忆起来自其他一些供应商的JVM 做允许在正在运行的JVM中更改一些堆参数。也许有人可以澄清。)
答案 1 :(得分:0)
您需要了解JVM空间与其运行环境之间的区别。 您提到的参数(以及任何其他-X或-XX参数)是由运行JVM的环境提供的环境设置。
在Windows XP计算机中,Windows操作系统是JVM的发起者。因此,JVM不应该能够更改操作系统提供的参数。这是合乎逻辑的。
@Stephen C,您可能对某些提供此功能的VM实现是正确的,但我不确定。