我想从程序内调用命令开另一个进程,而能控制这个进程使用的内存大小,和进程运行的时间..
比如,我规定这个进程内存535K,时间5S,当超过时就将进程结束,返回异常..
我原来是想用EXEC,或者PROCESSBUILD,但JDK文档里好象没有控制内存和时间的函数,所以就有求坛里各位了..
比如,我规定这个进程内存535K,时间5S,当超过时就将进程结束,返回异常..
我原来是想用EXEC,或者PROCESSBUILD,但JDK文档里好象没有控制内存和时间的函数,所以就有求坛里各位了..
Java程序的内存管理是由JVM统一负责的。
用EXEC()出来的进程还是由JVM管理吗?
例如.EXEC("DIR/W"),这个进程还是运行在JVM中吗?
就是不能控制运行的内存,和时间.如果超过了就中止,返回异常..
这个很多地方都有例子的..就是ACM的ONLINE JUDGE.我想弄一个这样的..各位有没有方法解决呀..
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size传递给java vm就可以了 java里可以用Runtime.exec("java -Xms ... -Xmx.... ....")
这个方法返回一个Process对象。你就可以使用和控制这个进程了。
如果你要等待这个进程结束可以用Process.waitFor方法。关于你说的超时Process好象是不支持,你可以在一个单独的Thread里面waitFor这个进程。超时间后就interrupt掉这个Thread,这时waitFor会抛出InterruptedException异常。Thread里你可以通过判断waitFor是正常返回还是抛出异常来判断进程是否成功结束。