2011-12-04 3 views

답변

2

새 프로세스를 시작하고 원하는 모든 셸 명령을 실행할 수 있습니다. 뭔가 같이 :

String[] procArgs = { "ssh", "arguments" }; // set arguments here. 
Process process = Runtime.getRuntime().exec(procArgs); 
+0

좋은 제안이지만 자바를 실행하고있는 컴퓨터에 ssh가 설치되어 있지 않을 수도 있습니다. – Zubair

3

우리는 다시 2004 년 http://www.jcraft.com/jsch/을 사용하는 데 사용 - 우리를 위해 잘 작동했다.

실행중인 프로세스가 좋은 옵션이지만 특정 OS (또는 특정 OS 세트)에 묶여있게 만듭니다.

sourcesantsshexec 과제를 확인하십시오. 동일한 라이브러리를 사용합니다. 라이브러리에 의해 연결이 유지됩니다. 출력 스트림은 setOutputStreamsetExtOutputStream에 의해 설정됩니다.

시간 초과를 제거하거나 조금 더 똑똑하게 만들면 잠시 동안 새로운 데이터가없는 경우에만 연결을 끊을 수 있습니다.

+0

어떻게 "tail -f"출력에서 연결을 열어 읽었습니까? – Zubair

+0

코드 샘플의 업데이트 된 추가 링크를 참조하십시오. – alf

+0

감사합니다. 소스를 확인한 결과 System.out을 사용하는 것으로 나타났습니다. 여러 개의 "tail -f"로 작동하는지 알고 있습니까? 나는 그것이 스레드 안전한지 알아 내려고 노력하고있는 것 같아요. – Zubair

관련 문제