마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

process = runtime.exec(cmd)에서 명령어 여러번 실행방법?

0 추천

usb연결 해서 adb shell로 커맨드 내려서 사용하던 프로그램을 APP으로 만들어 보고 있습니다.

APP상에서도 shell 커맨드를 내릴 수 있다는 것을 보아서, 대충 아래와 같이 구현 중입니다.

Runtime runtime = Runtime.getRuntime();
process = runtime.exec(mycmd 111); //mycmd라는 프로그램실행 (111은 파라미터)
 
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
StringBuffer sb = new StringBuffer();
 
while ((line = br.readLine()) != null) {
    sb.append(line + "\n");
}
여기까진(명령어 한번실행은) 잘 되었습니다.
 
근데 중요한건 명령어를 연속(순차적)으로 두번 내려야 합니다..ㅠ
각각 출력되는 스트링 값도 받아서 봐야 하고..
 
단순한 방법으로 여러가지를 해 보았으나 첫번째 명령만 되거나 파라미터값이 이상하게 전달되기도 했습니다.
 
그래서 최종적으로 해 본게 아래와 같은데
 
process = runtime.exec(cmd_1 + "\n");
process = runtime.exec(cmd_2 + "\n");
이렇게 하면 cmd_2에 대한 결과(스트링)만 출력됩니다. cmd1도 실행이 된 걸까요?ㅠ
 
APP내부에서 외부 프로그램 명령을 연속으로 두번 내릴 수 있는 구조는 어떻게 해 야 할까요?ㅠ
 
호가든. (120 포인트) 님이 2015년 1월 12일 질문

1개의 답변

0 추천
void runtimeFunction() {
Runtime runtime = Runtime.getRuntime();
process = runtime.exec(mycmd 111); //mycmd라는 프로그램실행 (111은 파라미터)
 
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = "";
StringBuffer sb = new StringBuffer();
 
while ((line = br.readLine()) != null) {
    sb.append(line + "\n");
}
}
이렇게 하나의 메소드로 만들어서 메소드를 콜해보심은?
nicehee (73,100 포인트) 님이 2015년 1월 12일 답변
...