java runtime 运行外部程序
时间: 2024-05-05 16:18:02 浏览: 9
可以使用 Java 的 ProcessBuilder 类来运行外部程序。该类提供了一种创建操作系统进程并执行指定命令的方式。您可以通过设置 ProcessBuilder 对象的属性来指定要执行的命令、参数和工作目录等选项。接下来,您可以使用该类的 start() 方法来启动进程并等待其结束。开始执行外部程序的示例代码如下:
```
ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "dir");
pb.redirectErrorStream(true);
pb.directory(new File("C:\\temp"));
Process proc = pb.start();
int exitCode = proc.waitFor();
System.out.println("Process exited with code " + exitCode);
```
这个示例演示了如何启动 Windows 上的 cmd.exe 进程,并使用 /c 参数来执行 dir 命令来列出指定目录的内容。输出将被重定向到标准输出流,并且工作目录将被设置为 C:\temp。最后,程序将等待进程结束并输出其退出代码。
相关问题
java运行外部程序
Java可以使用Runtime类或ProcessBuilder类来运行外部程序。下面是两种方法的示例:
1. 使用Runtime类运行外部程序
```java
try {
// 运行记事本程序
Runtime.getRuntime().exec("notepad.exe");
} catch (IOException e) {
e.printStackTrace();
}
```
2. 使用ProcessBuilder类运行外部程序
```java
try {
// 运行cmd命令
ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "dir");
Process process = pb.start();
// 读取命令输出结果
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
```
java如何启动外部exe程序
Java可以通过`Runtime.getRuntime().exec()`方法来启动外部exe程序。这个方法会返回一个`Process`对象,可以通过这个对象来控制和监视外部程序的运行状态。
下面是一个简单的例子,启动一个计算器程序:
```java
try {
Process process = Runtime.getRuntime().exec("calc.exe");
} catch (IOException e) {
e.printStackTrace();
}
```
这个例子中,通过传入字符串"calc.exe"来启动计算器程序,如果程序启动成功,`process`对象就会指向这个外部进程。如果程序启动失败,会抛出`IOException`异常。
启动外部程序时,还可以传入一些参数和环境变量。例如,要启动一个名为"MyApp.exe"的程序,并传入两个参数"arg1"和"arg2",可以这样写:
```java
try {
String[] cmd = {"MyApp.exe", "arg1", "arg2"};
Process process = Runtime.getRuntime().exec(cmd);
} catch (IOException e) {
e.printStackTrace();
}
```
在`cmd`数组中,第一个元素是外部程序的名称,后面的元素是传给程序的参数。如果程序需要读取环境变量,可以通过`ProcessBuilder`类来设置。