2012-05-20 4 views
-1

가능한 중복 :
Redirect stdin and stdout in Java실행 대화 형 쉘 명령

내가 자바에서 쉘 명령을 실행하는 방법을 알고 있지만, 어떻게 그렇게 내 응용 프로그램이 입력에 기록 할 수 있으며, 출력에서 읽습니다.

+1

남자, 중복되지 않습니다. 다른 질문입니다. 그는 리디렉션이 아니라 부모 프로세스와 하위 프로세스 간의 프로세스 간 통신을 구현하는 방법에 대해 묻습니다. – AlexR

답변

2

나는 귀하가 귀하의 질문에 대한 답변을 설명했다고 생각합니다.

Runtime.exec() 또는 ProcessBuilder을 사용하여 java에서 외부 응용 프로그램을 실행하는 경우 표준 출력 및 표준 입력 스트림에 액세스 할 수 있습니다. 외부 응용 프로그램에 명령을 전송하기 위해 외부 응용 프로그램이 작성하고 출력하는 스트림을 읽는 사용자 입력 스트림입니다.

하지만주의하십시오. 일부 응용 프로그램은 Java에서 명령을 보내지 않습니다. 예를 들어 Unix 시스템에서 명령어 ssh은 사람이 아닌 사용자 (예 : 다른 응용 프로그램)의 사용을 피하도록 설계되었습니다. 보안상의 이유로 터미널에서 실행해야하므로 예를 들어 ssh otherhost을 실행 한 다음 java에서 사용자/비밀번호를 보낼 수 없습니다. 이것을 필요로한다면 터미널을 시뮬레이트하고 스크립트에 의해 구동되는 expect이라는 다른 명령 행 유틸리티를 통해 명령을 실행해야합니다.