我正在做一个java类考试在线程序评判系统,
步骤一、学生从jsp界面录入程序到后台,
步骤二、程序将学生提交的程序存储在.java的文件中,
步骤三、然后编译成.class文件,
步骤四、最后执行.class文件获得执行后的结果,根据测试集确定考试结果的正确性。
前三步我都实现了,第四步使用Runtime.getRuntime().exec(java "java的.class类"),执行的速度慢的不得了,有可能都执行不了,求第四步的解决方案!

解决方案 »

  1.   

    抱歉·没使用过Runtime,差了一下··
    exit
    public void exit(int status)通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。此方法从不正常返回。可以将变量作为一个状态码;根据惯例,非零的状态码表示非正常终止。 
    虚拟机的关闭序列包含两个阶段。在第一个阶段中,会以某种未指定的顺序启动所有已注册的关闭钩子 (hook)(如果有的话),并且允许它们同时运行直至结束。在第二个阶段中,如果已启用退出终结,则运行所有未调用的终结方法。一旦完成这个阶段,虚拟机就会暂停。 如果在虚拟机已开始其关闭序列后才调用此方法,那么若正在运行关闭钩子,则将无限期地阻断此方法。如果已经运行完关闭钩子,并且已启用退出终结 (on-exit finalization),那么此方法将利用给定的状态码(如果状态码是非零值)暂停虚拟机;否则将无限期地阻断虚拟机。 System.exit 方法是调用此方法的一种传统而便捷的方式。 参数:
    status - 终止状态。按照惯例,非零的状态码表明非正常终止。 
    抛出: 
    SecurityException - 如果安全管理器存在,并且其 checkExit 方法不允许存在指定的状态
    另请参见:
    SecurityException, SecurityManager.checkExit(int), addShutdownHook(java.lang.Thread), removeShutdownHook(java.lang.Thread), runFinalizersOnExit(boolean), halt(int)
      

  2.   

    建议楼主以命令行的形式编写批处理命令·然后通过Java来调用··