在Java中,你可以使用Runtime
类或ProcessBuilder
类来在命令行中执行脚本。这里有两个示例:
示例1:使用Runtime类
import java.io.BufferedReader; import java.io.InputStreamReader; public class ExecuteScript { public static void main(String[] args) { try { // 替换为你的脚本文件路径 String scriptPath = "/path/to/your/script.sh"; // 使用Runtime类执行脚本 Process process = Runtime.getRuntime().exec(new String[]{"bash", scriptPath}); // 读取脚本的输出 BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } // 等待脚本执行完成 int exitCode = process.waitFor(); System.out.println("脚本执行完成,退出代码:" + exitCode); } catch (Exception e) { e.printStackTrace(); } } }
示例2:使用ProcessBuilder类
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class ExecuteScript { public static void main(String[] args) { try { // 替换为你的脚本文件路径 String scriptPath = "/path/to/your/script.sh"; // 使用ProcessBuilder类执行脚本 ProcessBuilder processBuilder = new ProcessBuilder("bash", scriptPath); processBuilder.redirectErrorStream(true); // 将错误输出和标准输出合并 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(); System.out.println("脚本执行完成,退出代码:" + exitCode); } catch (Exception e) { e.printStackTrace(); } } }
请注意,这些示例适用于Linux和macOS系统。如果你使用的是Windows系统,你需要将bash
替换为cmd.exe
或powershell
,并相应地修改脚本文件路径。