Runtime.exec()을 사용하여 새 프로세스를 시작하려고하지만 내 문제는 원격에서 ssh를 사용하여 Java 프로그램을 실행하는 것입니다. 코드 :리눅스에서 ssh를 사용하는 Java Runtime.exec() 문제
test = "ssh -t [email protected] java packageName.ClassName portNumber (Other command line args for this class)"
Process proc = Runtime.getRuntime().exec(new String[] {"/bin/bash", "-c", test});
이 실패하거나 캐치하지만 새로 실행중인 프로세스의 표준 출력을 볼 수 있어야하고 그렇게하지 않습니다.
참고 : 명령 줄에서 ssh -t [email protected] java packageName.ClassName portNumber (Other command line args for this class)
을 실행하면 정상적으로 작동합니다. ssh 키를 사용하여 암호를 요구하지 않도록 호스트 설정을했습니다.
아이디어가 있으십니까?
+1 Jsch는 ssh와 sftp의 모든 것을 잘 처리합니다. – Gray
더 이상 동의 할 수 없습니다. 'Runtime.exec()'를 피하십시오. 특히 순수 자바 라이브러리가 있다면 가능합니다. –
+1 지금까지 jsch에 대해 전혀 알지 못했습니다. –