[java] 자바에서 유닉스/리눅스 시스템 호출을 어떻게 사용할 수 있나요?
유닉스 또는 리눅스 명령을 자바에서 실행하는 방법은 java.lang.ProcessBuilder
클래스나 Runtime.exec()
메서드를 사용하여 간단하게 수행할 수 있습니다. 또한, Apache Commons Exec와 같은 외부 라이브러리를 사용하여 더 많은 기능을 제공받을 수도 있습니다.
1. ProcessBuilder
클래스 사용하기
ProcessBuilder
클래스를 사용하면 명령어를 실행할 때 다양한 설정을 할 수 있습니다. 아래는 간단한 예제 코드입니다.
import java.io.IOException;
public class ProcessBuilderExample {
public static void main(String[] args) {
ProcessBuilder processBuilder = new ProcessBuilder("ls", "-l");
try {
Process process = processBuilder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
2. Runtime.exec()
메서드 사용하기
Runtime.exec()
메서드는 간단한 명령을 실행할 때 사용할 수 있습니다.
import java.io.IOException;
public class RuntimeExecExample {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("ls -l");
} catch (IOException e) {
e.printStackTrace();
}
}
}
Runtime.exec()
메서드를 사용할 때는 명령을 하나의 문자열로 전달해야 합니다.
3. 외부 라이브러리 사용하기
Apache Commons Exec 라이브러리는 명령어 실행에 더 많은 기능을 제공합니다. 다양한 설정과 출력 처리 등을 보다 쉽게 할 수 있습니다.
메이븐을 사용한다면 아래와 같이 의존성을 추가하여 사용할 수 있습니다.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-exec</artifactId>
<version>1.3</version>
</dependency>
여기서는 ProcessBuilder
와 Runtime.exec()
만을 다루었지만, 복잡한 시스템 호출을 위해서는 외부 라이브러리 사용을 고려해볼 만 합니다.
자바에서 유닉스/리눅스 시스템 호출을 하는 방법에 대한 간략한 소개였습니다. 부가적인 설정이나 출력 처리 등을 고려해야 할 때는 외부 라이브러리를 사용해도 좋은 선택지가 될 수 있습니다.