我是否认为当在 IDE 中指定 VM 参数时(我在此实例中使用 NetBeans),这些参数仅在代码通过 IDE 本身运行时才传递?
本质上,我想指定当我的程序运行时,VM 的最小/初始堆大小为 2Gb。我可以使用 -Xms2048m 命令来做到这一点,但我想知道是否有某种方法可以实现这一点而无需键入命令(为了客户的缘故)。
即使我在 NetBeans 和 Launch4J 中设置了 VM 参数(我将 JAR 包装到一个 EXE 文件中),当程序启动并输出运行时的总内存大小时,它总是给出 ~120Mb。
我错过了什么?
编辑:我使用...输出总内存大小
int mb = 1024 * 1024;
System.out.println("Max Memory: " + Runtime.getRuntime().totalMemory() / mb);
编辑2:不能创建一个不带参数的初始化程序,而是用相关的VM参数启动主程序吗?就像是...
public class Main {
public static void main(String[] args) {
String execName = new File(new File("").getAbsolutePath()) + "\\Program.exe";
Runtime rt = Runtime.getRuntime();
rt.exec("java -Xms2048m -Xmx4096m -jar " + execName);
}
}