分配给通过Java调用的命令行程序的内存

分配给通过Java调用的命令行程序的内存,java,memory-management,jvm,Java,Memory Management,Jvm,假设我使用以下代码段通过java调用命令行程序 p = Runtime.getRuntime().exec(command); p.waitFor(); 在这种情况下,将为exec调用的command程序分配多少内存?它是否与分配给jvm的内存有关? 如果是,我如何克服这个限制 更新 根据对这个问题的回答, Runtime.getRuntime().exec以相同的数量分配进程 以记忆为主。如果您将堆设置为1GB并尝试执行 然后,它将为该进程分配另一个1GB来运行 那么,有没有什么方法可以


假设我使用以下代码段通过java调用命令行程序

 p = Runtime.getRuntime().exec(command);
 p.waitFor();
在这种情况下,将为
exec
调用的
command
程序分配多少内存?它是否与分配给
jvm
的内存有关? 如果是,我如何克服这个限制

更新
根据对这个问题的回答,

Runtime.getRuntime().exec以相同的数量分配进程 以记忆为主。如果您将堆设置为1GB并尝试执行 然后,它将为该进程分配另一个1GB来运行

那么,有没有什么方法可以让我使用java调用的进程拥有更多的内存

如果我像这样通过命令提示符运行命令呢

rt.exec("cmd.exe /c command");
在这种情况下,谁来决定内存限制?命令提示符或Java?

表示命令将在单独的进程中启动。因此,命令本身将在自己的进程中使用自己的内存运行,并且不会使用任何JVM内存


当然,该方法还返回一个
进程
对象,该对象本身将使用一点JVM内存,但这只是跟踪已启动进程的几个变量,因此除非您并行启动数万个进程,否则这不应该是一个问题。

应该与JVM内存设置无关,而且它也不受Java的限制。只有每个进程的操作系统级别内存限制(适用于您的用户)适用。@FranMontero我问的是内存限制。若分配给程序的内存受到分配给jvm的内存的限制,那个么我如何克服这个问题呢。