想在Java虚拟机调用外部程序,第一个想到的应是java.lang.runtime,然后利用runtime.exec方法得到process进程,但是这个方法有很多坑,例如不及时读取缓冲中的数据时,就会挂死
后来发现了apache.commons.executor这个类,他在内部已经做好了足够的准备,至少不会发生挂死的情况
1 | import org.apache.commons.exec.CommandLine; |
上述程序将会输出1234
,值得注意的是,如果不设置streamHandler,程序会自动输出到console