国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

Java調(diào)用外部程序

2019-11-06 06:07:04
字體:
供稿:網(wǎng)友

想在java虛擬機(jī)調(diào)用外部程序 第一個(gè)想到的應(yīng)是java.lang.runtime 然后利用runtime.exec方法得到PRocess進(jìn)程 但是這個(gè)方法有很多坑,例如不及時(shí)讀取緩沖中的數(shù)據(jù)時(shí),就會(huì)掛死

后來發(fā)現(xiàn)了apache.commons.executor這個(gè)類 他在內(nèi)部已經(jīng)做好了足夠的準(zhǔn)備 至少不會(huì)發(fā)生掛死的情況

import org.apache.commons.exec.CommandLine;import org.apache.commons.exec.DefaultExecutor;import org.apache.commons.exec.PumpStreamHandler;//CommandLine command = CommandLine.parse("echo 123456789"); 和下面的是一樣的CommandLine command = new CommandLine("echo");command.addArgument("1234");DefaultExecutor executor = new DefaultExecutor();// 如果需要讀取輸出,則需要設(shè)置下列步驟ByteArrayOutputStream outputStream = new ByteArrayOutputStream();PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream); executor.setStreamHandler(streamHandler); // 如果需要在其他目錄下工作,需要設(shè)置以下兩步File workingDirectory = new File("/home/user/")executor.setWorkingDirectory(workingDirectory);try { executor.execute(commandLine);} catch (final IOException e) { e.printStackTrace();}System.out.println(outputStream.toString());// 讀取輸出

上述程序?qū)?huì)輸出1234,值得注意的是,如果不設(shè)置streamHandler,程序會(huì)自動(dòng)輸出到console


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安国市| 綦江县| 芜湖县| 安福县| 永清县| 江源县| 库尔勒市| 治县。| 长宁区| 噶尔县| 无为县| 临夏县| 昌邑市| 和静县| 肥城市| 黄冈市| 铜梁县| 新昌县| 章丘市| 嘉义市| 濮阳县| 淳化县| 葫芦岛市| 无极县| 靖宇县| 天全县| 冀州市| 晋州市| 抚顺市| 洛南县| 嘉善县| 凤城市| 乌审旗| 萝北县| 贵港市| 肃南| 灵璧县| 台山市| 寿阳县| 塔河县| 曲靖市|