该类java.lang.Runtime具有一个称为的静态方法getRuntime(),该方法检索当前的Java Runtime Environment。这是获得对该Runtime对象的引用的唯一方法。使用该参考,您可以通过调用Runtime类的exec()方法来运行外部程序。开发人员经常调用此方法来启动浏览器,以显示HTML的帮助页面。
该exec()命令有四个重载版本:
public Process exec(String command);public Process exec(String [] cmdArray);public Process exec(String command, String [] envp);public Process exec(String [] cmdArray, String [] envp);
对于这些方法中的每一个,命令(可能还有一组参数)都传递给特定于操作系统的函数调用。随后,这将参考Process返回给Java VM的类来创建特定于操作系统的进程(正在运行的程序)。所述Process类是一个抽象类,因为一个特定的子类Process存在于每个操作系统。
您可以将三个可能的输入参数传递给这些方法:
- 一个字符串,代表要执行的程序和该程序的所有参数

Runtime.exec()方法常用于在Java中执行外部程序,但存在潜在问题。当使用单个字符串参数时,需注意空格解析。如果不捕获或处理非法线程状态异常,可能导致程序挂起。此外,未及时处理子进程的输入/输出流可能导致阻塞或死锁。解决办法是捕获异常或确保读取子进程的输出,以避免资源限制导致的挂起。正确的做法是同时清空标准输出和错误流。

924

被折叠的 条评论
为什么被折叠?



