5

有 -Xmx 和 max-heap-size (jnlp) 选项来设置 Java 应用程序可以使用的最大内存。
如果未指定这些选项,则允许应用程序仅使用系统中少量可用的物理内存。
这就是人们使用 -Xmx 以允许应用程序使用更多内存的原因。但这对我来说真的是一场噩梦,因为客户端机器上可能有不同的内存量,甚至应该考虑操作系统。

有没有办法让java应用程序使用系统中的最大可用内存?

谢谢。

4

2 回答 2

5
-XX:DefaultMaxRAMFraction=1

bugs.sun.com
Sun 的 1.5 JVM
默认堆大小

不适用于网络启动。

于 2012-07-06T18:35:21.660 回答
3

不幸的是,我知道的最好方法是编写一个简单的启动器(可能是一个 shell 脚本或批处理文件)来检查系统,确定 -Xmx 的适当值,然后启动 Java 应用程序。JVM 初始化后,就无法更改这些值。

于 2012-07-06T16:33:03.123 回答