在写Java应用程序的时候,会碰到在程序中调用另一个可执行程序或系统命令,这时可通过组合使用Java提供的Runtime
类(java/lang/Runtime.java)和Process
类(java/lang/Process.java)的API来实现。典型的模式如下:
Process process = Runtime.getRuntime().exec(".\\p.exe");
process.waitfor()
- “.\p.exe”是要执行的程序名。
Runtime.getRuntime()
返回当前应用程序的Runtime对象。- Runtime对象的
exec()
方法指示Java虚拟机创建一个子进程执行指定的可执行文件,并返回与该子进程对应的Process对象实例。 - 通过Process对象可控制该子进程的执行或者获取该子进程的信息。
process.waitfor()
的目的在于等待子进程完成之后再往下执行。
Runtime类:与JVM运行时环境有关的类(Singleton),另外Runtime.getRuntime()
可以取得当前Java的运行时环境,也是在Java中唯一可得到运行时环境的方法。Runtime中其他大部分方法都是实例方法,也就是说每次运行时调用这些方法都得先getRuntime()
。Runtime中exit()
方法是退出当前JVM的方法,好像也是唯一一个。因为System.exit()
也是调用的Runtime.exec()
来退出JVM的。
参考的原文链接:http://blog.sina.com.cn/s/blog_4b2fd9350100qd3n.html