Java에서 쉘 스크립트 실행

By JS | Last updated: June 20, 2021

Java에서 shell script 파일을 실행하는 방법을 소개합니다.

1. Runtime.getRuntime().exec()

Runtime.getRuntime().exec(script file path) API로 자바에서 쉘스크립트 파일을 실행할 수 있습니다.

BufferedReader를 통해 실행 결과를 읽을 수 있습니다.

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"

Output:

My Script

2. ProcessBuilder

ProcessBuilder를 이용하여 자바에서 쉘스크립트 파일을 실행할 수 있습니다. BufferedReader를 통해 실행 결과를 읽을 수 있습니다.

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();
        }
    }
}

Output:

My Script

Related Posts

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha