为在Java中启动.exe程序并传递参数,有以下几个步骤:
- 使用
Runtime.getRuntime()
获取运行时对象。 - 使用运行时对象的
exec()
方法执行需要启动的.exe程序,并获得其进程对象Process。 - 调用进程对象Process的
getOutputStream()
和getInputStream()
方法获取标准输出流和输入流。 - 使用标准输出流向.exe程序输入参数。
- 读取.exe程序打印在标准输出流中的结果,即标准输入流。
示例1:启动一个.exe程序并传递参数
String exePath = "C:\\path\\to\\program.exe";
String arg1 = "arg1";
String arg2 = "arg2";
try {
// 获取运行时对象
Runtime runtime = Runtime.getRuntime();
// 执行.exe程序并获得其进程对象
Process proc = runtime.exec(exePath + " " + arg1 + " " + arg2);
// 获取标准输入流和输出流
BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
// 向标准输出流输入参数
output.write("input_str \n");
output.flush();
// 读取标准输入流,即.exe程序的输出结果
String line;
while ((line = input.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
示例2:启动一个.exe程序并传递参数,然后根据返回结果做出不同的处理操作
String exePath = "C:\\path\\to\\program.exe";
String arg1 = "arg1";
String arg2 = "arg2";
try {
// 获取运行时对象
Runtime runtime = Runtime.getRuntime();
// 执行.exe程序并获得其进程对象
Process proc = runtime.exec(exePath + " " + arg1 + " " + arg2);
// 获取标准输入流和输出流
BufferedReader input = new BufferedReader(new InputStreamReader(proc.getInputStream()));
BufferedWriter output = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
// 向标准输出流输入参数
output.write("input_str \n");
output.flush();
// 读取标准输入流,即.exe程序的输出结果
String line;
while ((line = input.readLine()) != null) {
// 根据返回结果进行不同的处理
if (line.equals("success")) {
// do something
} else if (line.equals("failure")) {
// do something else
} else {
// do another thing
}
}
} catch (IOException e) {
e.printStackTrace();
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 启动exe程序,传递参数和获取参数操作 - Python技术站