有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么在使用Powershell指定Xms和Xmx时,它们什么都不做,但通过Netbeans IDE可以正常工作?

我有一个Java程序,它创建了4个长度为MAX_INTEGER - 2的空字节数组,然后在main方法中的无限while循环上停止

我已将Windows Java设置设置为包含参数-Xms12g -Xms12g(我有16gb的RAM)。 Java settings

当在Netbeans IDE中使用为VM设置的相同参数运行程序时,程序会执行,我可以在Task Manager中看到使用了~8g RAM,这正是我所期望的。 Task manager Java

我已经把这个程序编译成了一个独立的程序。jar文件,以便我可以从Powershell外部运行它,但在尝试运行该行时: java -jar prog.jar -Xms12g -Xmx12g 有人告诉我,不知何故,我已经超出了堆空间,但我刚刚通过IDE看到的情况并非如此: Powershell error

-XX:MaxPermSize=12g似乎也没什么区别,IDE的VM不需要这个参数

我错过了什么

-

完整的完整源代码:

package prog;

public class Prog
{
    public static final byte[] arr1 = new byte[Integer.MAX_VALUE - 2];
    public static final byte[] arr2 = new byte[Integer.MAX_VALUE - 2];
    public static final byte[] arr3 = new byte[Integer.MAX_VALUE - 2];
    public static final byte[] arr4 = new byte[Integer.MAX_VALUE - 2];

    public static void main(String[] args)
    {
        while(true);
    }
}

共 (0) 个答案