java,process
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
java process是什麼?一起來看看小編今天的分享吧!
在專案開發中,經常會遇到呼叫其它程式功能的業務需求,在java中通常有兩種實現方法,包括:
Runtime runtime = Runtime.getRuntime();Process p =runtime.exec(cmd);
和
Process p=new ProcessBuilder(cmd).start();
在這裡就需要認識一下process類,process是一個抽象的類,它包含6個抽象的方法:
abstract voiddestroy() 殺掉子程序。abstract intexitValue() 返回子程序的出口值。abstract InputStreamgetErrorStream() 獲取子程序的錯誤流。abstract InputStreamgetInputStream() 獲取子程序的輸入流。abstract OutputStreamgetOutputStream() 獲取子程序的輸出流。abstract intwaitFor() 導致當前執行緒等待,如有必要,一直要等到由該 Process 物件表示的程序已經終止。
以“ping 百度網址”為例:
import java.io.IOException; public class ProcessDemo { public static void main(String[] args) { try { Process process = Runtime.getRuntime().exec("ping www.baidu.com"); System.out.println("任務執行完畢!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
由於Process提供了WaitFor和getInputStream兩個方法,這兩個方法都阻塞java執行緒,使呼叫ping被掛到後臺執行,程式直接列印“任務執行完畢!”,而我們想要的效果是先把ping操作執行完成後,再輸出“任務執行完畢!”,可以等待指令碼返回或結束後,再繼續執行java程式:
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader; public class ProcessDemo { public static void main(String[] args) { try { Process process = Runtime.getRuntime().exec("ping www.baidu.com"); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream(),"gbk")); String line; while ((line = bufferedReader.readLine()) != null) { System.out.println(line); } System.out.println("任務執行完畢!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
import java.io.IOException; public class ProcessDemo { public static void main(String[] args) { try { Process process = Runtime.getRuntime().exec("ping www.baidu.com"); process.waitFor(); System.out.println("任務執行完畢!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
這樣就完成了process的Java程式操作。
-
手機殼髒了該怎麼清洗
1、矽膠手機殼的清洗方法。先找一個乾的布並放在水裡清洗一下,撈出來之後再擰乾,放在陽臺上晒晒,等晒得差不多了我們就可以用它仔仔細細地把手機殼清洗一次。如果發現你的手機殼上有汙點的話,或者是灰塵,都可以用小牙刷沾上一點牙膏來清洗。如果你的手機殼上有膠水...
-
手機qq如何判斷好友是否隱身
1、在手機桌面上開啟【QQ】,進入主介面,點選【聯絡人】選項。然後點選要判斷是否隱身的好友。在他的詳細資料介面,點選【發訊息】。進入聊天介面後,點選右上角【通話】。2、在通話方式中,選擇【語音通話】功能。如果顯示【等待對方接聽】,那他就在隱身。顯示為【對方...
-
怎麼檢視微信群在哪裡
1、成功登陸微信後,點選微信通訊錄選項卡,在微信通訊錄裡可以看到群聊,點選群聊。2、開啟群聊後,在群聊這裡什麼都沒有,點選群聊右上角的“+”圖示。3、在發起群聊介面上,點選選擇一個群。4、點選進入到選擇群聊介面後,在選擇群聊就裡可以看到所有的微信群了。5、點選...
-
螞蟻森林如何不讓別人收取能量,積分兌換
1、首先開啟支付寶APP,點選:我的,在我的頁面找到:螞蟻會員,點進去。2、進來之後,我們在螞蟻會員頁面找到:領積分,點選進去。3、進來之後我們可以看到自己的積分,以及:螞蟻森林能量保護罩的圖示,我們會看到兌換需要200積分,積分足夠可以點選,馬上兌。4、之後進入螞蟻森林頁面...