Javaでシェルスクリプトを実行

Javaでshell scriptファイルを実行する方法を紹介します。

1. Runtime.getRuntime().exec()

Runtime.getRuntime().exec(script file path) APIのJavaでシェルスクリプトファイルを実行することができます。

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を利用して、Javaでシェルスクリプトファイルを実行することができます。 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