gpt4 book ai didi

java - 如何覆盖 JVM 选项中的 -Xmx50m?

转载 作者:行者123 更新时间:2023-12-01 22:35:39 24 4
gpt4 key购买 nike

我正在使用一个工具。 JVM 选项是可配置的。

最近,我遇到了 OutOfMemoryError,因此我在选项配置中添加了 -Xmx1024m,如下所示。

config.properties:JVM_OPTION="-Xmx4096m -XX:-UseGCOverheadLimit"

之前的cmd日志:java -Xms16777216 -Xmx50m com.f.Startmain

现在的cmd日志:java -Xms16777216 -Xmx50m com.f.Startmain -Xmx4096m -XX:-UseGCOverheadLimit

该工具现在仍然内存不足,因为 -Xmx4096m 没有覆盖旧的。该工具不可修改,配置只是在命令末尾添加新选项。

有人知道在 JVM 选项中覆盖 -Xmx50m 的方法吗?

最佳答案

这似乎已经得到解答here

显然对于windows和linux,你可以设置:

export _JAVA_OPTIONS="-Xmx1g"

我进行了快速测试,这似乎覆盖了命令行参数。 (意外)

我的代码:

public class Test {
public static void main(String[] argv) {
System.out.println("mem: " + Runtime.getRuntime().freeMemory());
System.out.println("total mem: " + Runtime.getRuntime().totalMemory());
}
}

这是运行该程序的输出

export _JAVA_OPTIONS="-Xmx20m";
java Test
>> Picked up _JAVA_OPTIONS: -Xmx20m
>> mem: 19601168
>> total mem: 20447232

java -Xmx123m Test
>> Picked up _JAVA_OPTIONS: -Xmx20m
>> mem: 19601320
>> total mem: 20447232

# clear java options
export _JAVA_OPTIONS=
java -Xmx123m Test
>> Picked up _JAVA_OPTIONS:
>> mem: 121773128
>> total mem: 123731968

如您所见,在清除 _JAVA_OPTIONS 之前,命令行上的 Xmx 值将被忽略。

关于java - 如何覆盖 JVM 选项中的 -Xmx50m?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26905524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com