코딩마을방범대

Java에서 OS의 시스템에 접근하기 본문

💡 백엔드/Java

Java에서 OS의 시스템에 접근하기

신짱구 5세 2023. 7. 25. 16:37
728x90

 

 

System 환경 변수 가져오기

컴퓨터마다 설정되어있는 환경 변수가 천차만별이다.

개발을 하게 되면서 PC에 따른 환경 변수가 필요할 경우가 있는데, Java에서는 이 시스템 환경 변수를 가져올 수 있다.

 

 

System.getenv()

  • 모든 시스템 환경변수에 대한 값을 key, value ( Map<String,String> ) 형태로 반환합니다.

System.getenv(String name)

  • name에 해당되는 시스템 환경 변수의 값을 반환합니다.

 

 

예제

System.getenv("DriverData");

 

 


 

 

컴퓨터의 환경 변수 리스트를 확인할 수 있는 방법

제어판 -> 시스템 -> 고급 시스템 설정 -> 환경 변수

 

 

 

 

 


 

 

 

 

 

System 명령어 실행 시키기

자바프로그램이 돌아가는 시스템(윈도우즈, 리눅스, 유닉스, 등)의 명령어를 실행시킨 후에 그 결과를 받아올 수 있다.

OS의 터미널의 명령어를 사용할 수 있다.

 

 

 

예제

cmd에서 hostname을 입력한 것과 동일한 값이 리턴된다.

String result = "";
String lineStr = "";

Process process = Runtime.getRuntime().exec("hostname");
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

while ((lineStr = br.readLine()) != null) {
	result = lineStr;
}

 


 

 

외부 프로그램을 실행하면서 해당 프로그램에 파라미터를 전달해야할 경우

인수를 배열로 주면 됨!

String[] cmd = {"notepad.exe", "test.txt"};
Process process = Runtime.getRuntime().exec(cmd);

 

 

 

 


 

 

운영체제에 따른 명령어 수행

boolean isWindows = System.getProperty("os.name")
	.toLowerCase().startsWith("windows");

if (isWindows) {
	process = Runtime.getRuntime()
		.exec(String.format("cmd.exe /c dir %s | findstr \"Desktop\"", homeDirectory));
} else {
	process = Runtime.getRuntime()
		.exec(String.format("/bin/sh -c ls %s | grep \"Desktop\"", homeDirectory));
}

 

 

 

 

 


참고사이트

[Java] System 환경 변수 가져오는 방법

[Java] 시스템 command 실행하기, Runtime.getRuntime.exec()

 

 

728x90