java进程中是否存在任何默认超时

时间:2015-05-22 13:34:55

标签: java process timeout runtime execution

我在jar中编写了一个工具来执行一个应用程序。这是执行应用程序的代码

String argument1 = workingDirectory +" "+ TC.getName();
        try {
            Process p = Runtime.getRuntime().exec(argument1);
            BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));

            String s = null;

            while ((s = stdInput.readLine()) != null) {
                    System.out.println(s);
                    //theLogger.info(s);


                    if (s.contains("FAILED")){
                        theLogger.info("TC is not passed");
                        TC.setIsNotPassed();
                    }

                    if (s.contains("PASSED")){
                        TC.setIsPassed();
                        theLogger.info("TC is passed");
                    } 

                    if (s.contains("End")) {
                        TC.settIterationNumber();
                        theLogger.info("TC Execution ends");
                        break;  
                    } 
            }
            stdInput.close();
            p.getInputStream().close();
            p.getOutputStream().close();
            p.getErrorStream().close();
            theLogger.info(Thread.currentThread().getStackTrace()[1].getMethodName().toString() + " OK");
        }catch (IOException e){
             e.printStackTrace();
             theLogger.info(Thread.currentThread().getStackTrace()[1].getMethodName().toString() + " NOK");
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

它工作正常,直到我遇到一个执行时间超过30分钟的情况。它认为在传递应用程序结果时结果失败。该代码适用于执行时间少于30分钟的情况。在我的代码中,我没有设置任何超时。 Java进程是否有任何默认超时?

0 个答案:

没有答案