먼저 스크립트에 대한 사용자의 실행 권한을 늘려야합니다.
코드 사본은 다음과 같습니다.
문자열 cmdstring = "chmod a+x test.sh";
Process Proc = runtime.getRuntime (). exec (cmdstring);
Proc.waitfor (); // 위의 명령이 실행될 때까지 블록
cmdstring = "bash test.sh"; // ksh 등이 될 수 있습니다.
Proc = runtime.getRuntime (). exec (cmdstring);
// 다음 작업에주의를 기울입니다
문자열 ls_1;
bufferedReader bufferedReader = new bufferedReader (new inputStreamReader (proc.getInputStream ());
while ((ls_1 = bufferedReader.Readline ())! = null);
bufferedReader.close ();
Proc.waitfor ();
위의 작업이 필요한 이유는 무엇입니까?
그 이유는 : 실행 가능한 프로그램의 출력은 비교적 클 수 있고, 런 윈도우의 출력 버퍼는 제한되어있어 대기가 항상 차단 될 수 있습니다. 솔루션은 Java가 제공 한 프로세스 클래스에서 제공 한 getInputStream 및 getErrorstream 메소드를 사용하여 Java 가상 머신이 호출 된 프로그램의 표준 출력 및 오류 출력을 가로 채고 () 전에 출력 버퍼의 내용을 읽을 수 있도록하는 것입니다. 명령.
이 기사를 좋아할 수 있기를 바랍니다.