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、長截圖辦法一iOS13上新之後自帶的長截圖方法,是在我們瀏覽網頁的時候使用的。操作方法:上音量鍵+開關鍵一起按下,然後點開截好的圖片,選擇“整頁”截圖即可。2、長截圖方法二利用QQ實現長截圖。操作方法:首先就是需要我們打開QQ,然後試着上音量鍵+開關鍵一起按下...
-
省內移動數據流量是指什麼
省內移動數據流量是指你的SIM卡所屬省份的可用GPRS流量,如果出了你的卡所屬的省份,去別的省,那省內移動數據流量就不可以使用,只能使用全國通用流量。移動數據流量有省內流量和全國通用流量,國內流量和省內流量是有所區別的。首先優先度不同:正常情況下,如果用戶在自...
-
關於底噪的意思介紹
1、底噪亦稱背景噪聲,基本所有的好耳機都有底噪,耳機底噪一般都是因爲前端的問題,耳機的靈敏度越高對於底噪就越敏感,一些高靈敏度和低阻抗的耳機會把底噪放大,如果加大音量的情況下,底噪會更加的明顯。2、檢測MP3底噪,一般方法是在夜晚等比較安靜的環境中戴上耳機,播...
-
黑色背景拍照竅門詳解
1、調整拍攝角度,尋找背景:既然是拍攝黑背景,在拍攝前我們儘量選擇深色的背景,這樣也就更加容易達到效果。不過深色不一定要是純黑色,只要顏色較爲深沉,偏向暗色調的均可。拍攝前多多觀察,尋找不同的拍攝角度,以找到有反差的深色作爲背景。要多嘗試不同的角度,直至主體...