java如何开始进程
启动进程的方法
在Java中,可以通过ProcessBuilder或Runtime.exec()启动外部进程。

使用ProcessBuilder
ProcessBuilder提供了更灵活的方式来启动和管理进程,支持设置工作目录、环境变量等。

ProcessBuilder processBuilder = new ProcessBuilder("command", "arg1", "arg2");
processBuilder.directory(new File("/path/to/working/dir")); // 可选:设置工作目录
Process process = processBuilder.start();
// 获取进程输出
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待进程结束
int exitCode = process.waitFor();
System.out.println("Exit Code: " + exitCode);
使用Runtime.exec()
Runtime.exec()是传统方法,适合简单场景。
Process process = Runtime.getRuntime().exec("command arg1 arg2");
// 读取输出
InputStream inputStream = process.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待进程结束
int exitCode = process.waitFor();
System.out.println("Exit Code: " + exitCode);
注意事项
- 如果命令包含空格或特殊字符,建议使用
ProcessBuilder并拆分参数,避免Shell解析问题。 - 处理进程的输入/输出流,避免缓冲区满导致进程阻塞。
- 使用
waitFor()等待进程完成,否则可能导致资源未释放。 - 检查进程退出码(
exitCode),0通常表示成功,非0表示异常。






