http://d2.naver.com/helloworld/1113548
http://imcho.tistory.com/38
1. Runtime 클래스
Runtime.exec(); 를 통해서 외부 프로세스를 실행한다.
exec() 메소드를 호출하기 전에 명령어와 해당 독립변수, 환경 변수 설정, 작업 디렉터리 등을 지정한다. 모든 버전의 메소드는 생성된 프로세스를 관리하기 위한 java.lang.Process 오브젝트를 반환하는데, 이는 서브프로세스 및 종료 상태의 인풋 또는 아웃풋 스트림을 얻어낼 수 있도록 해준다.
exec()의 매게변수안에 명령어를 작성하여 실행시키면 명령어대로 실행된다.이에 따른 아웃풋을 읽어드려 출력하면 커맨드창에 출력된다.
하지만 exec()에서는 서브프로세스의 환경변수에 대한 입력이 용이하지않다. 그걸 개선하기위해 ProcessBuilder클래스를 사용한다.
2. ProcessBuilder 클래스
위에서 언급했듯이 환경변수를 조작하는데 더욱 용이하다.
환경변수를 입력하기위해 environment()메소드를 통해 Map을 얻어낸다음 map을 처리한다.
다음과같이 map에 환경변수를 설정하여준다.
--------------
ProcessBuilder processBuilder = new ProcessBuilder( command, arg1, arg2);
Map<String, String> env = processBuilder.environment();
env.put("var1", "value");
env.remove("var3");
--------------
환경 변수와 디렉터리가 설정된후 start()를 호출한다.
또한 환경변수를 초기화하기위해 clear()하고 다시 설정할수도있다.
'JAVA 계열 > 자바 & 안드로이드 교육' 카테고리의 다른 글
12월 3주차 2일차(23주차) (0) | 2015.12.15 |
---|---|
12월 2주차 5일차(23주차) (0) | 2015.12.11 |
11월 2주차 4일차(19주차) (0) | 2015.11.12 |
11월 2주차 3일차(19주차) (0) | 2015.11.11 |
11월 2주차 2일차(19주차) (0) | 2015.11.10 |