在Java中,当你使用Runtime.exec()
或ProcessBuilder
执行外部命令时,可能会遇到异常。为了捕获这些异常,你可以使用try-catch
语句。以下是一个示例:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
try {
// 使用Runtime.exec()执行外部命令
Process process = Runtime.getRuntime().exec("your_command_here");
// 获取命令执行的输出
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("Command executed with exit code: " + exitCode);
} catch (IOException e) {
// 捕获执行外部命令时发生的异常
System.err.println("Error executing command: " + e.getMessage());
e.printStackTrace();
} catch (InterruptedException e) {
// 捕获等待命令执行完成时发生的异常
System.err.println("Command execution was interrupted: " + e.getMessage());
e.printStackTrace();
}
}
}
在这个示例中,我们使用try-catch
语句捕获了两种可能的异常:
IOException
:当执行外部命令时可能会发生此异常。例如,如果指定的命令不存在或无法执行。InterruptedException
:当等待命令执行完成时可能会发生此异常。例如,如果当前线程在等待命令执行时被中断。请注意,你需要将your_command_here
替换为你要执行的实际命令。