Java 調用cmd.exe命令

來源:互聯網
上載者:User

標籤:

原理:java的Runtime.getRuntime().exec(commandText)可以調用執行cmd指令。

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

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

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

cmd /k start dir 會開啟一個新視窗後執行dir指令,原視窗不會關閉。
注:增加了start,就會開啟新視窗,可以用cmd /?查看協助資訊。

如下舉例:
1、從D盤copy一份檔案到E盤。
public static void main(String[] args) {
    try {
        String cmdStr = "cmd /c copy d:\\test.txt e:\\" ;
        Runtime.getRuntime().exec(cmdStr);
    }catch(Exception e){
        e.printStackTrace();
    }
}
註:這裡d盤下的目錄要用\\,若用d:/test.txt則會理解成同/c一樣的命令,而找不到檔案路徑;故這裡可以用file.getAbsolutePath();

2、刪除一個檔案(注意是單個檔案,非檔案夾)。這裡以上面copy到e盤的test.txt檔案為例。
public static void main(String[] args) {
    try {
        String cmdStr = "cmd /c del e:\\test.txt" ;
        Runtime.getRuntime().exec(cmdStr);
    }catch(Exception e){
        e.printStackTrace();
    }
}

3、強制移除e:/test檔案夾下的所有檔案夾及檔案

public static void main(String[] args) {
    try {
        String cmdStr = "cmd /c rd/s/q e:\\test" ;
        Runtime.getRuntime().exec(cmdStr);
    }catch(Exception e){
        e.printStackTrace();
    }
}
注:這裡主要是“rd/s/q”起到了作用,這樣無論test裡面有幾層檔案夾,檔案夾下有多少檔案,都統統被強制移除了。

調用系統命令,使用如下的一行代碼:
Process process = Runtime.getRuntime().exec("cmd /c copy d:\\test.txt e:");
其中,方法exec的參數就是你要調用的具體系統命令。因為copy本身不是一個可執行檔exe檔案,因此需要在前面添加cmd /c來啟動一個控制台應用程式。而若要運行一個可執行程式,如執行我在F盤下的tomcat安裝檔案,將命令寫為:String cmdStr = "F:\\apache-tomcat-6.0.20.exe"; 

調用批處理代碼:
public static void main(String[] args) {  
    String path = "D:\\public.bat";  
    Runtime run = Runtime.getRuntime();  
    try {    
        Process process = run.exec("cmd.exe /k start " + path);  

        //將調用結果列印到控制台上
        InputStream in = process.getInputStream();    
        while (in.read() != -1) {  
            System.out.println(in.read());  
        }  
        in.close();  
        process.waitFor();  
    } catch (Exception e) {           
        e.printStackTrace();  
    }  
}

 

參考:http://blog.163.com/[email protected]/blog/static/1406291232012575743301/

Java 調用cmd.exe命令

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.