if [ ! -f xxx/xxx ] then printf "xxxxxx" exit 1 这段代码中如何能被 java中的Process.getErrorStream() 这个方法获取到
时间: 2024-05-13 19:18:19 浏览: 89
java代码-//运行cmd命令并返回结果
这段代码无法被 `Process.getErrorStream()` 方法获取到,因为这是一个 Bash Shell 的语句,而不是 Java 代码。
`Process.getErrorStream()` 方法是 Java 中用于获取外部进程错误输出流的方法,通常用于捕获外部进程执行过程中产生的错误信息。如果你想在 Java 中捕获 Shell 命令执行过程中的错误信息,你可以使用以下代码:
```java
ProcessBuilder pb = new ProcessBuilder("bash", "-c", "if [ ! -f xxx/xxx ]; then printf 'xxxxxx'; exit 1; fi");
Process process = pb.start();
InputStream errorStream = process.getErrorStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(errorStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
```
这里使用了 `ProcessBuilder` 类创建一个 Bash Shell 进程,并将 Shell 命令作为参数传递给它。然后通过 `getErrorStream()` 方法获取进程的错误输出流,并通过 `BufferedReader` 读取输出信息。
阅读全文