2009-02-26 5 views
0

이전에이 질문을했습니다. 나는 folowing 요구 사항을 가지고있다.배치 파일을 실행하는 데 지연이 있습니다.

  1. 배치 파일을 실행하십시오.
  2. 배치 파일을 실행할 시간을줍니다. 3. 배치 파일 닫기

다음 요구 사항을 충족하지 않는 코드가 있습니다. 내가 실수

 Runtime rt = Runtime.getRuntime(); 
     Process pr = rt.exec(command); 
     //pr.exitValue(); 
     //wait(10000); 
     pr.waitFor(); 
     pr.destroy(); 

내가 work.how 내가

감사

답변

0

에게 제안을 배치 파일을 실행 한 후 약 15 분 동안 지연을 줄 수 doesnot WAITFOR 사용했습니다 만든 곳을 가르쳐주세요 : 출력 및 오류 스트림을 잡고 인쇄중인 것을 확인하십시오. 배치 파일에 오류가 발생하여 예상보다 빨리 반환되는 것을 볼 수 있습니다.

+0

문자열 명령 = "cmd/C 배치 파일 시작 경로"; 런타임 rt = Runtime.getRuntime(); 프로세스 pr = rt.exec (명령); –

0

내가 당신이 원하는 모르겠지만,

Thread.sleep를 가진 (900000)

15 분 동안 기다릴 수 있습니다.

1

일괄 처리에서 stdIO를 읽는 스레드가없는 경우 일괄 처리가 차단 될 수 있습니다. 비록 당신이 관심이 없다하더라도 당신은 여전히 ​​그것을 읽고 그것을 버리기를 꺼려합니다. 그런 다음 기다리는 것이 더 나은 변화를 가져옵니다.

0

귀하의 질문에 자바에서 지연을 언급 언급하지 않았다. Java 프로그램이 실행 된 후에 지연이 배치 파일에 있어야 함을 의미합니다. 따라서 모든 시간 동안 구성 할 수 있습니다. 여기에 20 초의 예가 있습니다 :

@ECHO off 
REM.-- End of application 
:: do something here 
GOTO :END 
:: you could put functions here 
:END 
FOR /l %%a in (20,-1,1) do (TITLE %title% -- closing in %%as&ping -n 2 -w 1 127.0.0.1>NUL) 
TITLE Press any key to close the application&ECHO.&GOTO:EOF 
PAUSE>nul 
관련 문제