2012-07-09 1 views
3

나는백그라운드에서 Java 코드의 명령 행을 어떻게 실행합니까?

Process process = Runtime.getRuntime().exec("cmd /c start rake.bat"); 

배치 파일을 실행하려면 다음 줄을 가지고하지만 백그라운드에서 실행하고 사용자에게 명령 행을 표시하지 않도록합니다. 어떻게해야합니까?

문제는 명령 창이 열리고 프로그램 GUI가 손상된다는 것입니다. 배치 파일을 실행하는 동안 명령 창을 보이지 않게하고 싶습니다.

+0

문제는 명령 창이 열리고 프로그램 GUI가 손상된다는 것입니다. 배치 파일을 실행하는 동안 명령 창을 보이지 않게하고 싶습니다. – cHam

답변

7

프롬프트 당신은 또한 오류 스트림을 잊지 않고 입력 및 출력 스트림을해야 할 것입니다. XP에서 '시작'을 제거하면 작동하지 않으므로 도움이되지 않습니다.

+0

시작 명령을 제거하면 winot가 실행됩니다. – developer

+0

@developer Windows 7 JDK 7에서 테스트 한 것만으로도 충분합니다. –

+0

위의 명령에서 "start"를 제거한 후 명령을 실행하지 않은 Windows XP에서 테스트했습니다. – developer

0
Process process = Runtime.getRuntime().exec("cmd /c start rake.bat"); 

Java 프로세스에서 위의 행을 호출하여 배치 파일을 실행하는 경우. 이것은 기본적으로 백그라운드에서 실행됩니다.

1

난 당신이 윈도우가 표시되지 단순히 의미하는 경우

'백그라운드에서'this SO answer 사용 될 수 있습니다 무슨 뜻인지 확실히 모르겠어요.

그러나 실행 중에 Java 프로그램을 계속 실행하려면 다음을 separate thread에 생성해야합니다.

상기와 관계없이, be careful to capture your batch file's sdtout/stderr. 나는이 테스트 한

Process process = Runtime.getRuntime().exec("cmd /c rake.bat"); 

하고 명령과 통신하려면 당연히 경우, 작동합니다 (이 창을 만드는 것입니다 같이)이 완전히 당신이 원하는 것을 할 것 '시작'제거