Java에서 shell script 파일을 실행하는 방법 2가지를 소개합니다.
1. Runtime.getRuntime().exec()
Runtime.getRuntime().exec(script file path) API로 자바에서 쉘스크립트 파일을 실행할 수 있습니다.
BufferedReader를 통해 실행 결과를 읽을 수 있습니다.
[ java ]
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RunShellScript {
public static void main(String[] args) {
try {
// Run script
Process process = Runtime.getRuntime().exec("/tmp/myscript.sh");
// Read output
StringBuilder output = new StringBuilder();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
output.append(line);
}
System.out.println(output.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
[ 쉘 ]
# /tmp/myscript.sh
echo "My Script"
[ 실행 결과 ]
더보기
My Script
2. ProcessBuilder
ProcessBuilder를 이용하여 자바에서 쉘스크립트 파일을 실행할 수 있습니다. BufferedReader를 통해 실행 결과를 읽을 수 있습니다.
[ java ]
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class RunShellScript2 {
public static void main(String[] args) {
ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("/tmp/myscript.sh");
try {
// Run script
Process process = processBuilder.start();
// Read output
StringBuilder output = new StringBuilder();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
output.append(line);
}
System.out.println(output.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
[ 실행 결과 ]
My Script
[ 참고 사이트 ]
728x90
'Spring > Java' 카테고리의 다른 글
[ Java ] 진수변환 (10진수 ↔ 2진수, 8진수, 16진수) (0) | 2022.04.08 |
---|---|
[ Java ] String.format() - 문자열 형식 설정 (0) | 2022.04.08 |
[ java ] Stream(스트림) 정리 & 예제소스 (0) | 2022.03.17 |
[ java 14 ] 개선된 switch 문(Enhanced Switch Expressions) / 화살표(->) case문 (0) | 2022.03.17 |
[ Java ] HashMap, LinkedHashMap 차이점 및 사용법 (0) | 2022.03.16 |
댓글