日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 执行外部命令 苹果_Java中执行外部命令

發布時間:2023/12/19 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 执行外部命令 苹果_Java中执行外部命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在項目中執行一個linux的shell腳本,于是需要在java環境下執行外部命令如系統命令、linux命令的需求,本人小小研究了一下,又上網查了一些資料先整理如下。

java執行外部命令主要依賴兩個類Process和Runtime。

一、Process類

ProcessBuilder.start()創建一個本機進程,并返回一個Process子類的一個實例,該實例可以獲取進程的相關信息,也可以控制進程。這個進程沒有自己的終端,它的操作結果io都重定向到了它的父進程,父進程通過getInputStream(),getOutputStream(),getErrorStream()為子進程提供輸入和獲取輸出,而對于io流如果有緩沖大小限制,則可能出現阻塞,導致死鎖情況。

可使用destory()方式強制殺掉子進程,exitValue()返回執行結果,如果子進程需要等待返回,調用waitFor()方法將當前線程等待,直到子進程退出。

二、Runtime類

Runtime.getRuntime().exec()?獲得的就是Process類,exec()方法有多個重載可以使用,針對不同的情況設置不同的參數。另外需要注意的是執行的windows和linux的明林的寫法是不同的。

publicclassruntimeTest?{

public?static?void?main(String[]?args)?{

String?command?=?"notepad.exe?txt.txt";

try?{

Process?process?=?Runtime.getRuntime().exec(command);

BufferedInputStream?bis?=?new?BufferedInputStream(

process.getInputStream());

BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(bis));

String?line;

while?((line?=?br.readLine())?!=?null)?{

System.out.println(line);

}

process.waitFor();

if?(process.exitValue()?!=?0)?{

System.out.println("error!");

}

bis.close();

br.close();

}?catch?(IOException?e)?{

//TODO?Auto-generated?catch?block????????????e.printStackTrace();

}?catch?(InterruptedException?e)?{

//TODO?Auto-generated?catch?block????????????e.printStackTrace();

}

}

}

三、Apache Common-Exec

強烈建議使用apache的第三方庫,該庫提供了更加詳細的設置和監控方法等等。

執行的命令被稱為CommandLine,可使用該類的addArgument()方法為其添加參數,parse()方法將你提供的命令包裝好一個可執行的命令。命令是由執行器Executor類來執行的,DefaultExecutor類的execute()方法執行命令,exitValue也可以通過該方法返回接收。設置ExecuteWatchdog可指定進程在出錯后多長時間結束,這樣有效防止了run-away的進程。此外common-exec還支持異步執行,Executor通過設置一個ExecuteResultHandler類,該類的實例會接收住錯誤異常和退出代碼。

CommandLine?cmdLine?=newCommandLine("AcroRd32.exe");

cmdLine.addArgument("/p");

cmdLine.addArgument("/h");

cmdLine.addArgument("${file}");

HashMap?map?=?new?HashMap();

map.put("file",?new?File("invoice.pdf"));

commandLine.setSubstitutionMap(map);

DefaultExecuteResultHandler?resultHandler?=?new?DefaultExecuteResultHandler();

ExecuteWatchdog?watchdog?=?new?ExecuteWatchdog(60*1000);

Executor?executor?=?new?DefaultExecutor();

executor.setExitValue(1);

executor.setWatchdog(watchdog);

executor.execute(cmdLine,?resultHandler);

//some?time?later?the?result?handler?callback?was?invoked?so?we//can?safely?request?the?exit?valueint?exitValue?=?resultHandler.waitFor();

以上是自己從common-exec官方文檔自己的理解,如有錯誤望輕拍!

總結

以上是生活随笔為你收集整理的java 执行外部命令 苹果_Java中执行外部命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国v精品久久久网 | 中国免费一级片 | 九九热九九爱 | 欧美男女性生活视频 | av一级网站 | ass亚洲熟妇毛耸耸pics | 成人欧美一区二区三区黑人 | 欧美日韩国产一区二区三区 | 午夜福利电影一区 | 操操操爽爽爽 | 亚洲av无码久久忘忧草 | 中文字幕不卡在线 | 久久青青热 | 99人妻少妇精品视频一区 | 成人手机看片 | 精品在线视频播放 | 伊人影院在线观看 | japan高清日本乱xxxxx | 亚洲人在线观看 | 免费毛片大全 | 精品国产a线一区二区三区东京热 | 99xav| 色资源av | 国产一区二区视频在线 | 中国字幕一色哟哟 | 亚洲国产精品无码久久久久高潮 | 欧美视频四区 | 日本免费不卡一区二区 | 国产一级淫片a视频免费观看 | 精品久久国产视频 | 色中文字幕 | 欧美做受高潮 | 免费网站观看www在线观看 | 2021中文字幕 | 禁断介护av | 人妻中文字幕一区二区三区 | 日韩爆操 | 日韩黄色视屏 | 欧美裸体xxxx | 蜜桃av在线看 | 色欲久久久天天天综合网 | 国产精品久久久一区二区 | 久久久久久久黄色 | 国产成人小视频在线观看 | sese在线| 久久亚洲AV成人无码国产人妖 | 国产精品1区2区 | 午夜视频福利 | 国产精品无码白浆高潮 | 深夜视频在线免费观看 | 日韩女优在线观看 | 涩涩网站在线观看 | 人人舔人人插 | 国产精品电影一区二区三区 | 狠狠躁18三区二区一区视频 | 992tv在线成人免费观看 | 懂色av一区二区三区蜜臀 | 亚洲精品亚洲人成人网 | 亚洲国产一区在线 | jizz性欧美17 | 精品视频一区二区三区四区五区 | 男人激烈吮乳吃奶爽文 | 四川丰满妇女毛片四川话 | 五月天婷婷在线视频 | 日韩美女黄色片 | 国产一区在线观看免费 | 日韩欧美在线观看视频 | 韩国三级av | 日韩一区二区三区免费在线观看 | 欧美精品自拍偷拍 | 亚洲免费黄色片 | 火影黄动漫免费网站 | 国产91香蕉 | 麻豆视频一区二区三区 | 99久久精品久久久久久清纯 | 夜夜撸 | 男性裸体全身精光gay | 国产91综合一区在线观看 | 狠狠躁日日躁夜夜躁2022麻豆 | 50部乳奶水在线播放 | 成人免费观看视频网站 | 日韩精品视频久久 | 成年人视频在线免费看 | 动漫涩涩免费网站在线看 | 激情久久网| 国产传媒视频在线观看 | 欧美日韩免费在线 | 无遮挡又爽又刺激的视频 | 男女互操在线观看 | 飘花影院伦理片 | 国产精品午夜影院 | 在线观看网页视频 | 可以免费看的黄色网址 | 曰本不卡视频 | 91在线播放国产 | 国产一区二区小视频 | 亚洲综合网av | 七仙女欲春2一级裸体片 | 欧美黄色一级网站 |