- 相關(guān)推薦
Java調用Linux命令行
Java語(yǔ)言以其跨平臺性和簡(jiǎn)易性而著(zhù)稱(chēng),在Java里面的lang包里(java.lang.Runtime)提供了一個(gè)允許Java程序與該程序所運行的環(huán)境交互的接口,這就是Runtime類(lèi),在Runtime類(lèi)里提供了獲取當前運行環(huán)境的接口。那么java怎么調用Linux命令行,跟yjbys小編一起來(lái)學(xué)習一下吧!
Java可以直接調用Linux命令,形式如下:
Runtime.getRuntime().exec(command)
舉例:運行ls,top命令可以這樣:
Runtime.getRuntime().exec("ls");
但是這樣執行時(shí)沒(méi)有任何輸出,原因:
調用Runtime.exec方法將產(chǎn)生一個(gè)本地的進(jìn)程,并返回一個(gè)Process子類(lèi)的實(shí)例,
(注意:Runtime.getRuntime().exec(command)返回的是一個(gè)Process類(lèi)的實(shí)例),
該實(shí)例可用于控制進(jìn)程或取得進(jìn)程的相關(guān)信息. 由于調用Runtime.exec方法所創(chuàng )建的子進(jìn)程沒(méi)有自己的終端或控制臺,因此該子進(jìn)程的標準IO(如stdin,stdou,stderr)都通過(guò)Process.getOutputStream(),Process.getInputStream(), Process.getErrorStream()方法重定向給它的父進(jìn)程了.用戶(hù)需要用這些stream來(lái)向子進(jìn)程輸入數據或獲取子進(jìn)程的輸出. 可以采用如下方法:
try
{
Process process = Runtime.getRuntime().exec ("ls");
InputStreamReader ir=new InputStreamReader(process.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
String line;
while ((line = input.readLine ()) != null){
System.out.println(line)
}
catch (java.io.IOException e){
System.err.println ("IOException " + e.getMessage());
}
【Java調用Linux命令行】相關(guān)文章:
java程序中如何調用linux命令08-27
Java如何調用WebService08-12
java調用cmd命令01-29
java jar 命令行參數06-04
Linux常用命令行匯總09-11
JAVA和JAVAC命令行大全08-07
java命令行參數解析201608-12