java에서 process builder를 사용하게 되면 쉽게 외부의 프로그램을 실행 시킬수 있다.
그러나 text기반으로 실행되는 프로그램들은 in/out stream을 얻어오는것으로 쉽게 In/out을 컨트롤 할 수 있지만 minicom과 같이 독립의 콘솔을 요구하는 프로그램의 경우는 사용이 다르다.
FileOutputStream();
FileInputStream();
을 사용해서 process builder를 통해서 생성된 프로세스의 in/out stream을 얻어오게되면
minicom과 같이 독립적으로 실행되는 process에 대해서도 I/O의 컨트롤이 가능하다.
String params[] = {"/usr/bin/gnome-terminal", "-e", "minicom"};// "/usr/bin/minicom"
// Jtag이용한 보드연결
// String params[] = {"/root/grmon-eval","-jtag","-nb"};
// 명령이 입력되어있는 Process생성
ProcessBuilder pb = new ProcessBuilder(params);
try {
// pb.inheritIO().start(); // console을 통한 직접 컨트롤을 할경우
proc = pb.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
FileInputStream in = null;
FileOutputStream out = null;
/* try {
in = new FileInputStream("/dev/ttyS1");
int c = 0;
while ((c = in.read()) != -1)
{
System.out.print((char) c);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}*/
try {
Thread.sleep(5000); } catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace(); }
try {
out = new FileOutputStream("/dev/ttyS1");
out.write("test".getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
'지난일들 > 이클립스 플러그인개발' 카테고리의 다른 글
이클립스에 메뉴 추가 (0) | 2013.12.19 |
---|---|
Java 공부 (0) | 2013.11.05 |
이클립스 공부 (0) | 2013.09.25 |