我想从程序内调用命令开另一个进程,而能控制这个进程使用的内存大小,和进程运行的时间..
比如,我规定这个进程内存535K,时间5S,当超过时就将进程结束,返回异常..
我原来是想用EXEC,或者PROCESSBUILD,但JDK文档里好象没有控制内存和时间的函数,所以就有求坛里各位了..

解决方案 »

  1.   

    可能比较难。
    Java程序的内存管理是由JVM统一负责的。
      

  2.   

    我知道VC中有方法,但用本地方法的话.还不知道行不行得通..弄了几次老是编译出个.EXE,不知道怎么编译出.DLL,没用过VC
    用EXEC()出来的进程还是由JVM管理吗?
    例如.EXEC("DIR/W"),这个进程还是运行在JVM中吗?
      

  3.   

    这是JAVA,是在沙箱中执行的。不能老想着象VC那样自己控制内存。
      

  4.   

    这是JAVA,是在沙箱中执行的。不能老想着象VC那样自己控制内存。
      

  5.   

    这是JAVA,是在沙箱中执行的。不能老想着象VC那样自己控制内存。
      

  6.   

    我是这样的,我想实现一个在线提交系统..就是你代码从浏栏器里提交,然后服务器会比较你代码编译执行,而且还会用服务器的输入数据,输入,得到输出结果,和预期结果比较..然后将之返回给浏览器...其他部分都弄好了..
    就是不能控制运行的内存,和时间.如果超过了就中止,返回异常..
    这个很多地方都有例子的..就是ACM的ONLINE JUDGE.我想弄一个这样的..各位有没有方法解决呀..
      

  7.   

    -Xms<size>        set initial Java heap size
     -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是正常返回还是抛出异常来判断进程是否成功结束。