Javaでシェルスクリプトを呼び出す方法は何ですか?
Javaでは、シェルスクリプトを呼び出すためにProcessBuilderクラスを使用することができます。以下はサンプルコードです:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ShellScriptExample {
public static void main(String[] args) {
try {
// 创建ProcessBuilder对象并指定要执行的命令
ProcessBuilder processBuilder = new ProcessBuilder("/bin/sh", "/path/to/script.sh");
// 设置工作目录(可选)
processBuilder.directory(new File("/path/to/directory"));
// 启动命令并获取进程对象
Process process = processBuilder.start();
// 读取命令的输出
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待命令执行完毕
int exitCode = process.waitFor();
if (exitCode == 0) {
System.out.println("命令执行成功");
} else {
System.out.println("命令执行失败");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
上記のコードでは、ProcessBuilderクラスを使用して実行するコマンドと作業ディレクトリを設定します。その後、start()メソッドを使用してコマンドを起動し、プロセスオブジェクトを取得します。getInputStream()メソッドを使用すると、コマンドの出力ストリームを取得でき、そのストリームを読み取ることでコマンドの出力を取得できます。
最後に、waitFor()メソッドを使用してコマンドの実行が完了するのを待ち、コマンドの終了コードを取得します。終了コードの値に基づいて、コマンドが成功裏に実行されたかどうかを判別できます。
上記の例で示されているコマンドパスと作業ディレクトリは、実際の状況に合わせて修正してください。