从 Java 执行另一个应用程序
2022-09-02 22:49:19
我需要执行一个执行另一个Java应用程序的批处理文件。我不在乎它是否成功执行,我也不必捕获任何错误。
是否可以使用 ProcessBuilder 执行此操作?如果我不捕获错误,会有什么后果?
但是,我的要求只是执行另一个Java应用程序。
我需要执行一个执行另一个Java应用程序的批处理文件。我不在乎它是否成功执行,我也不必捕获任何错误。
是否可以使用 ProcessBuilder 执行此操作?如果我不捕获错误,会有什么后果?
但是,我的要求只是执行另一个Java应用程序。
这种方法非常麻烦,您很快就会发现。Runtime.getRuntime().exec()
看看Apache Commons Exec项目。它抽象出许多与使用 和 API 相关的常见问题。Runtime.getRuntime().exec()
ProcessBuilder
它就像这样简单:
String line = "myCommand.exe";
CommandLine commandLine = CommandLine.parse(line);
DefaultExecutor executor = new DefaultExecutor();
executor.setExitValue(1);
int exitValue = executor.execute(commandLine);
是的,可以使用 ProcessBuilder。
ProcessBuilder 示例:
import java.io.*;
import java.util.*;
public class CmdProcessBuilder {
public static void main(String args[])
throws InterruptedException,IOException
{
List<String> command = new ArrayList<String>();
command.add(args[0]);
ProcessBuilder builder = new ProcessBuilder(command);
Map<String, String> environ = builder.environment();
final Process process = builder.start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
System.out.println("Program terminated!");
}
}
查看以下示例:
http://www.rgagnon.com/javadetails/java-0014.html
http://www.java-tips.org/java-se-tips/java.util/from-runtime.exec-to-processbuilder.html