導航:首頁 > 程序命令 > java調用終端命令

java調用終端命令

發布時間:2024-04-06 17:28:39

1. 如何在java程序中調用linux命令或者shell腳本

java程序是提供了這個一方法,Processpro=Runtime.getRuntime().exec(cmds);
但是一般來說,盡量去用一些其他腳本(lua,shell,python)去執行一系列linux命令比較靈活, 而且耗費資源少。但是Runtime.getRuntime().exec()這種調用方式在java虛擬機中是十分消耗資源的,即使命令可以很快的執行完畢,頻繁的調用時創建進程消耗十分可觀。
java虛擬機執行這個命令的過程是,首先克隆一條和當前虛擬機擁有一樣環境變數的進程,再用這個新的進程執行外部命令,最後退出這個進程。頻繁的創建對CPU和內存的消耗很大。


下面是一個調用linux命令的例子:

publicclassTest{
publicstaticvoidmain(String[]args)throwsException{
String[]cmds={"/bin/sh","-c","ps-ef|grepjava"};
Processpro=Runtime.getRuntime().exec(cmds);
pro.waitFor();//阻塞,直到上述命令執行完
InputStreamin=pro.getInputStream();
BufferedReaderread=newBufferedReader(newInputStreamReader(in));
Stringline=null;
while((line=read.readLine())!=null){
System.out.println(line);
}
}
}

註:參數中逗/bin/sh逗 逗-c逗 是可以用shell執行指定的命令的意思
這里/bin/sh -cps -ef|grep java,會執行ps linux命令

2. JAVA如何調用DOS命令

下面是一種比較典型的程序模式:
Process process = Runtime.getRuntime().exec(".\\p.exe");
process.waitfor( );
在上面的程序中,第一行的「.\\p.exe」是要執行的程序名,Runtime.getRuntime()返回當前應用程序的Runtime對象,該對象的exec()方法指示Java虛擬機創建一個子進程執行指定的可執行程序,並返回與該子進程對應的Process對象實例。通過Process可以控制該子進程的執行或獲取該子進程的信息。第二條語句的目的等待子進程完成再往下執行。
但在windows平台上,如果處理不當,有時並不能得到預期的結果。下面是筆者在實際編程中總結的幾種需要注意的情況:
1、執行DOS的內部命令
如果要執行一條DOS內部命令,有兩種方法。一種方法是把命令解釋器包含在exec()的參數中。例如,執行dir命令,在NT上, 可寫成exec("cmd.exe /c dir"),在windows 95/98下,可寫成「command.exe /c dir」,其中參數「/c」表示命令執行後關閉Dos立即關閉窗口。另一種方法是,把內部命令放在一個批命令my_dir.bat文件中,在Java程序中寫成exec("my_dir.bat")。如果僅僅寫成exec("dir"),Java虛擬機則會報運行時錯誤。前一種方法要保證程序的可移植性,需要在程序中讀取運行的操作系統平台,以調用不同的命令解釋器。後一種方法則不需要做更多的處理。
2、打開一個不可執行的文件
打開一個不可執行的文件,但該文件存在關聯的應用程序,則可以有兩種方式。 以打開一個word文檔a.doc文件為例,Java中可以有以下兩種寫法:
exec("start .\\a.doc");
exec(" c:\\Program Files\\Microsoft Office\\office\\winword.exe .\\a.doc");
顯然,前一種方法更為簡捷方便。
3、執行一個有標准輸出的DOS可執行程序
在windows平台上,運行被調用程序的DOS窗口在程序執行完畢後往往並不會自動關閉,從而導致Java應用程序阻塞在waitfor( )。導致該現象的一個可能的原因是,該可執行程序的標准輸出比較多,而運行窗口的標准輸出緩沖區不夠大。解決的辦法是,利用Java提供的Process類提供的方法讓Java虛擬機截獲被調用程序的DOS運行窗口的標准輸出,在waitfor()命令之前讀出窗口的標准輸出緩沖區中的內容。一段典型的程序如下:

3. java如何執行cmd命令

用JAVA代碼實現執行CMD命令的方法!

Runtimert=Runtime.getRuntime();
Processp=rt.exec(String[]cmdarray);或者Processp=rt.exec(Stringcmd);
cmd命令格式為"cmd.exe/cipconfig/all"
對像p為進程,在給p賦值以前,必須保證p為空
if(p!=null){
p.destory();
p=null;
}

4. 用java怎麼實現調用cmd,並執行ping命令,求完整的語句

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Test {
public static void main(String[] args) {
Runtime rt = Runtime.getRuntime();
try {
Process p = rt.exec("cmd /c ping www..com -t");
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String temp = null;
while((temp =br.readLine()) != null){
System.out.println(temp);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

5. java調用linux終端命令,如何使終端不直接退出

#include "stdio.h"
#include "conio.h"
main()
{
int i,j,result;
printf("\n");
for (i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
result=i*j;
printf("%d*%d=%-3d",i,j,result); /*-3d表示左對齊,佔3位*/
}
printf("\n"); /*每一行後換行*/
}
getch();
}

6. java程序里如何調用linux命令

Java可以通過Runtime調用Linux命令御逗咐,形式如下:

  1. Runtime.getRuntime().exec(command)

    但是這樣執行時沒有任何輸出,因為調用Runtime.exec方法將產生一個本地的進程,並返回一個Process子類的實例(注意:Runtime.getRuntime().exec(command)返指寬回的是一個Process類的實例)該實例可用於控制進程或取得進程的相關信息。

  2. 由於調用Runtime.exec方法所創建的子進程沒有自己的終端或控制台,因此該子進程的標准IO(如stdin,stdou,stderr)都通過Process.getOutputStream(),Process.getInputStream(),Process.getErrorStream()方法重定向給它的父進程了。

  3. 用戶需要用這些stream來向子進程輸入數據或獲取子進程的輸出,下面的代碼可以取到linux命令的執行結果:

    try{

    String[]cmd=newString[]{」鎮純/bin/sh」,「-c」,」ls「};

    Processps=Runtime.getRuntime().exec(cmd);

    BufferedReaderbr=newBufferedReader(newInputStreamReader(ps.getInputStream()));

    StringBuffersb=newStringBuffer();

    Stringline;

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

    sb.append(line).append(」 」);

    }

    Stringresult=sb.toString();

    System.out.println(result);

    }catch(Exceptione){

    e.printStackTrace();

    }

7. 如何用java執行命令行

Java運行命令行並獲取返回值,下面以簡單的Java執行ping命令(ping 127.0.0.1 -t
)為例,代碼如下:

Processp=Runtime.getRuntime().exec("ping127.0.0.1-t");
Processp=Runtime.getRuntime().exec("javac");
InputStreamis=p.getInputStream();
BufferedReaderreader=newBufferedReader(newInputStreamReader(is));
Stringline;
while((line=reader.readLine())!=null){
System.out.println(line);
}
p.waitFor();
is.close();
reader.close();
p.destroy();
}

8. 如何使用Java執行cmd命令

java的Runtime.getRuntime().exec(commandStr)可以調用執行cmd指令。

cmd /c dir 是執行完dir命令後關閉命令窗口。

cmd /k dir 是執行完dir命令後不關閉命令窗口。

cmd /c start dir 會打開一個新窗口後執行dir指令,原窗口會關閉。

cmd /k start dir 會打開一個新窗口後執行dir指令,原窗口不會關閉。

可以用cmd /?查看幫助信息。

9. 如何用java程序打開linux終端,然後在其中執行命令

linux終端下運行Java程序,需要安裝JDK。
這里先介紹如何安裝JDK,然後介紹如何安裝Java程序。
首先,打開終端,快捷鍵ctrl+alt+t;
安裝JDK,sudo apt-get install openjdk-7-jdk( 注意,這里需要輸入密碼);
切換到java程序所在的目錄;
編譯以.java結尾的程序,可以使用javac *.java編譯當前目錄下所有的java源程序,並生成相應的class文件;
假如含有主程序的類文件是MP3.java,則使用java MP3運行該java程序。

閱讀全文

與java調用終端命令相關的資料

熱點內容
oracle導出表命令 瀏覽:901
怎麼寫域名加密 瀏覽:1001
手機文件壓縮出錯 瀏覽:516
如何登錄毒app 瀏覽:834
汽車中控台加密 瀏覽:862
海南農村信用社app如何開通簡訊 瀏覽:809
phpdns緩存 瀏覽:415
ipad騰訊視頻app如何播放本地視頻 瀏覽:990
蝦米伺服器關閉如何找到以前的歌 瀏覽:18
php自動建站 瀏覽:475
命令與征服3游俠網 瀏覽:970
騰訊雲買哪個地區伺服器 瀏覽:249
香港哪裡有app賣內地零食 瀏覽:683
編譯內核找不到工具鏈 瀏覽:453
java常見模式 瀏覽:504
典欣空調壓縮機 瀏覽:425
app如何認定許可權 瀏覽:855
兩個復數相除的角度計演算法則 瀏覽:590
電商類app開發怎麼收費 瀏覽:305
打造電子書反編譯工具 瀏覽:79