2014-07-12 2 views
0

저녁, 나는 /Scripts/copy.sh에있는 리눅스 스크립트를 실행하고 싶습니다. 이미 그에게 실행 권한을 주었고 Java에서 다음을 사용하고 있습니다.Java 실행 리눅스 스크립트

String tmp = "./Scripts/copy.sh"; 
p = Runtime.getRuntime().exec(
     new String[] {"/bin/bash","-c", tmp} 
); 

p.waitFor(); 

나는 그저 작동하지 않고 예외도없고 오류도 발생하지 않습니다. 어떤 아이디어?

+0

'./Scripts'는 (는)'/ Scripts'가 아니며 맞습니까? 그리고 Java없이 실행하면'/ Scripts/copy.sh'가 작동합니까? –

+0

그것은 ./Scripts이어야합니다. 왜냐하면 나는 리눅스 쉘에 따라 실행될 스크립트를 호출하기 때문입니다. 예, 작동합니다. –

+0

그리고 자바 프로세스가 같은 리눅스 쉘 폴더에서 시작하고 있습니까? "./"은 상대 경로입니다. 'pwd'의 결과는 무엇입니까? –

답변

0

스크립트가 아직 실행 중입니다. 그것은 단지 현재 터미널에 출력을 표시하지 않습니다. 이로 교체 :

String tmp = "./Scripts/copy.sh"; 
p = Runtime.getRuntime().exec(
     new String[] {"/bin/bash","-c", tmp + " >/dev/tty </dev/tty"} 
); 
p.waitFor(); 

이 의지 파이프 표준 입력 및 제어 단자 프로세스의 표준 출력 (그것은 또한 당신이 대화 형 콘솔 프로그램을 실행할 수 있습니다).