ProcessBuilder使用环境变量执行命令行
时间: 2024-01-14 15:03:58 浏览: 227
可以使用 `ProcessBuilder` 类来执行系统命令,并且可以设置环境变量。
以下是一个使用环境变量的示例代码:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Map;
public class ProcessBuilderExample {
public static void main(String[] args) throws Exception {
// 设置环境变量
ProcessBuilder pb = new ProcessBuilder("env");
Map<String, String> env = pb.environment();
env.put("MY_VAR", "my_value");
// 执行命令行
Process p = pb.start();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
}
}
```
在上面的示例中,我们使用 `ProcessBuilder` 类的 `environment()` 方法来获取当前进程的环境变量,并将 `MY_VAR` 的值设置为 `my_value`。然后,我们创建一个 `ProcessBuilder` 对象,用于执行 `env` 命令。`start()` 方法将会创建一个新的进程,并返回一个 `Process` 对象。我们可以使用 `getInputStream()` 方法获取进程的输出流,然后使用 `BufferedReader` 来读取输出。
执行代码后,将会输出当前进程的环境变量,其中包含 `MY_VAR=my_value` 这一行,表明我们成功地设置了环境变量。
阅读全文