国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 赤峰市| 云阳县| 泰安市| 察哈| 绵竹市| 福安市| 寻乌县| 宝丰县| 黑水县| 新宁县| 台北县| 孟连| 唐河县| 恩平市| 扬中市| 东丰县| 郸城县| 清苑县| 龙州县| 如皋市| 鄱阳县| 陆丰市| 双牌县| 云和县| 琼海市| 靖江市| 噶尔县| 宣城市| 甘谷县| 沙洋县| 三门县| 广东省| 贵定县| 拉孜县| 襄汾县| 瓮安县| 天峨县| 泰顺县| 开封市| 茂名市| 西林县|