java中使用Runtime.getRuntime().exec()调用sh脚本并输出控制台结果到文件中
时间: 2024-03-24 20:17:44 浏览: 130
java调用shell
可以使用以下代码实现:
```java
import java.io.*;
public class ExecShellScript {
public static void main(String[] args) {
try {
// 执行命令
String[] cmd = { "/bin/sh", "-c", "sh /path/to/your/script.sh" };
Process process = Runtime.getRuntime().exec(cmd);
// 将控制台输出写入文件
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
BufferedWriter writer = new BufferedWriter(new FileWriter("/path/to/your/output.txt"));
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
writer.close();
reader.close();
// 等待命令执行完毕
int exitCode = process.waitFor();
System.out.println("Exit code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
其中,`/path/to/your/script.sh`是你要执行的脚本的路径,`/path/to/your/output.txt`是你要输出控制台结果的文件路径。执行完毕后,输出控制台的结果将会写入到`/path/to/your/output.txt`文件中。
阅读全文