📅  最后修改于: 2023-12-03 15:22:22.868000             🧑  作者: Mango
在开发中,有时候需要使用 Java 代码启动 shell 脚本并传递参数。下面是一段 Java 代码示例,展示了如何使用参数启动 shell 脚本。
import java.io.IOException;
public class RunShellScript {
public static void main(String[] args) {
String scriptPath = "/path/to/your/shell/script.sh";
try {
// 构造 ProcessBuilder 实例
ProcessBuilder pb = new ProcessBuilder(scriptPath, arg1, arg2, arg3);
// 执行 shell 命令
Process process = pb.start();
// 获取输出流并打印
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待执行完成并获取返回值
int exitValue = process.waitFor();
// 检查返回值并输出
if (exitValue == 0) {
System.out.println("Script executed successfully.");
} else {
System.out.println("Script execution failed.");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
上面代码中的 scriptPath
是指要启动的 shell 脚本的路径。arg1
、arg2
等是要传递给脚本的参数。
使用 ProcessBuilder
类可以启动一个新的进程并执行指定的命令。start()
方法将命令执行起来,返回一个 Process
对象。我们可以通过这个对象获取命令执行时的标准输出流并输出,也可以使用 waitFor()
方法等待命令执行完成并获取其返回值。
需要注意的是,在执行命令时,可能会抛出 IOException
或 InterruptedException
异常,需要进行处理。如果命令顺利执行完毕,exitValue
的值应该是 0
,否则表示命令执行失败。
希望这段代码能够帮助你解决问题,顺利启动 shell 脚本并传递参数。