java - 更改最大堆大小时命令未运行

标签 java process heap-memory processbuilder

JAVA -Xms500M -Xmx1800M -XX:+UseConcMarkSweepGC -classpath C:\XYZ\MY_installer\lib\jlex.jar;C:\XYZ\MY_installer\lib\antlr.jar;C:\XYZ\MY_installer\lib\mytemplate.jar;C:\XYZ\MY_installer\lib\log4j-1.2-api-2.0-beta8.jar;C:\XYZ\MY_installer\lib\log4j-api-2.0-beta8.jar;C:\XYZ\MY_installer\lib\log4j-core-2.0-beta8.jar;C:\WORKSPACES\delnaz\del_prj;  -DENVFILE=C:\XYZ\MY_installer\bin\escat.ini utilities.graph.GraphDriver C:\XYZ\MY_installer "C:\WORKSPACES\delnaz\del_prj\del.prj" "C:\WORKSPACES\delnaz\del_prj" 1

问题:这是上面描述的 jar 环境所需的命令,如果我将最大堆大小 1400 更改为 1000,则该命令可以工作,尽管我知道 jar 不会对堆执行任何操作。但我想知道它发生变化的原因,或者可能是什么原因。

String cmdArr[] = {"cmd.exe", "/C" , cmdString};
                    ProcessBuilder pb = new ProcessBuilder(cmdArr);
                    Map<String, String> env = pb.environment();
                    env.put("PATH", System.getenv("PATH"));
                    env.put("ROOT", rootPath);
                    env.put("SYSTEMROOT", System.getenv("SYSTEMROOT"));
                    if(cmdString.endsWith("cfe.bat"))
                        pb.directory(new File("TextFiles"));
                    else
                        pb.directory(new File(Workspace_path));
                    process = pb.start();

java版本是:

java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) Client VM (build 23.21-b01, mixed mode, sharing)

Windows 7 Enterprise

RAM 4GB

32 bit OS

还有另一个策略: 我们需要 Maxheap 大小的原因是我们没有可以查看在标准选项上运行应用程序的选项。

最佳答案

这两个命令选项

-ms500M -mx1800M

应该是

-Xms500M -Xmx1800M

关于java - 更改最大堆大小时命令未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20626473/

相关文章:

c++ - 我怎样才能理解这些析构函数?

Java 将 StringBuilder 转换为 CharBuffer

java - 比较 JBoss Drools 中同一类的对象

process - powershell v2 - 如何获取进程 ID

C# WinForms 进程编码问题

Java - 避免重复的手动垃圾收集 - mstor 和 javaxmail OutOfMemoryError

java - 无法读取 jar 中的图像

java - 如何启用 Saxon xpath 表达式缓存?

linux - x86_64 的 current_thread_info 实现在哪里?

Java堆硬盘