2018. 8. 14. 23:15
반응형

참고로 윈도우10에서 테스트를 했다.

그래서 인코딩 형식을 MS949로 해줘야 한글이 깨지지 않는 것으로 보였다.


자바에서 운영체제의 터미널 명령어를 입력하고 그 결과값을 읽어올 수 있는 것은 매우 좋은 일이다.

아마 Nodejs, Python 등에서도 이런 일이 가능할 것이라고 생각한다.



간단히 ipconfig 명령어를 실행하고 그 결과를 출력하는 예제를 작성했다.

참고로 우분투 등 리눅스에서는 ipconfig가 아니라 ifconfig일 가능성이 꽤 높다.


try {
	String line;
	InputStream is;
	is = Runtime.getRuntime().exec("ipconfig").getInputStream();
	BufferedReader br = new BufferedReader(new InputStreamReader(is, "MS949"));
	while((line = br.readLine()) != null) {
		System.out.println(line);
	}
	br.close();
	is.close();
} catch (IOException e) {
	e.printStackTrace();
}

실행을 하게 되면 cmd 창에서 ipconfig를 실행한 결과와 동일한 글자들이 표시되는 것을 관찰할 수 있다.

cmd 말고 powershell을 원하는 사람은 "powershell ipconfig"로 고쳐주면 된다.

특히 날짜를 찍고싶을 때는 powershell date 로 해주는 것이 좋다.


그냥 "date"로 했을 때는 에러가 발생했다.

실제로 cmd와 powershell에서 각각 date 명령어를 실행했을 때의 동작은 약간의 차이가 있었다.

powershell에서는 그냥 현재 시각을 출력하고 끝났지만 cmd에서는 새로운 날짜를 입력하길 원했다.



그래서 웬만하면 뭔가 명령어를 입력했을 때 깔끔하게 결과값 출력하고 끝나는 작업에서 쓰는 것이 좋은 것 같다.

"python" 명령어를 위의 예제에서 사용하게 되면 파이썬이 실행된 채로 유지되고 있다.

그리고 강제로 terminate 시켜줘야 그걸 끝낼 수 있다.

반응형