【问题标题】:JVM command start options duplicationJVM 命令启动选项重复
【发布时间】:2011-11-30 13:39:03
【问题描述】:

我发现我们正在使用的旧版软件的启动属性格式错误,因此它接收这两个不相等的 xmx 作为属性:

java -jar myapp.jar -Xmx128m -Xmx512m 

我无权访问启动器源代码(无法修改),所以请问,这些参数重复有什么影响?我可以这样离开吗,还是我应该担心?会应用哪一个?

使用的JVM是JRE 6 update 18

【问题讨论】:

    标签: java jvm launch4j


    【解决方案1】:

    一般来说,如果工具不拒绝重复,通常会使用后一个选项,但除非工具记录它,否则您不能指望它。

    最好的办法是通过RuntimetotalMemorymaxMemory 看看你的特定JVM 会发生什么:

    public class HeapSize {
        public static final void main(String[] args) {
            Runtime rt = Runtime.getRuntime();
            System.out.println("Total currently: " + rt.totalMemory());
            System.out.println("Max:             " + rt.maxMemory());
            System.exit(0);
        }
    }
    

    my JVM上(Linux下的Sun/Oracle 1.6.0_26-b03),后一个选项生效:

    $ java -Xmx16m HeapSize
    当前总数:16121856
    最大:16121856
    $ java -Xmx32m 堆大小
    当前总数:32178176
    最大:32178176
    $ java -Xmx16m -Xmx32m 堆大小
    当前总数:32178176
    最大:32178176
    $ java -Xmx16m -Xmx32m -Xmx128m 堆大小
    当前总数:59113472
    最大:119341056

    【讨论】:

      【解决方案2】:

      我的理解是它将使用最后一个设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-04
        • 2015-02-28
        • 2015-06-11
        • 2012-04-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多