코딩마을방범대
Java에서 OS의 시스템에 접근하기 본문
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] 시스템 command 실행하기, Runtime.getRuntime.exec()
728x90
'💡 백엔드 > Java' 카테고리의 다른 글
Java에서 QR 코드 만들기 (0) | 2023.07.27 |
---|---|
Java의 Reflection 기능을 사용하는 방법 (0) | 2023.07.26 |
SpringBoot에서 Slack Webhoook 사용하기 (0) | 2023.07.25 |
Optional에 대하여 (0) | 2023.07.25 |
웹 소켓을 이용한 메시지 전송 프로세스의 이해 (1) | 2023.07.13 |