java使用RunTime調用windows命令行


當Java需要調用windows系統進行交互時,可以使用Runtime進行操作。

例子:

1、調用window中獲取關於java相關的進行信息

        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("wmic process where caption=\"javaw.exe\" get caption,commandline /value");
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line = null;
        while((line=br.readLine())!=null){
            System.out.println(new String(line.getBytes(), "GBK"));
        }
        br.close();
        System.out.println("over");

顯示結果如下:

 

2、在java中查詢windows中端口 :80

        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("cmd /k netstat -an | findstr :80"); // OK
        
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line = null;
        while((line=br.readLine())!=null){
            System.out.println(new String(line.getBytes(), "GBK"));
        }
        br.close();
        System.out.println("over");

結果為:

3、執行bat文件

Runtime rt = Runtime.getRuntime();
rt.exec("cmd /k start d:/Run/hello.bat");

注意:在編寫的簡單的bat,可以按照上述方式執行,但是:當hello需要依賴外部環境變量時不行

比如我需要啟動tomcat來發布一個web

rt.exec("cmd /k start d:/Run/Tomcat/bin/startup.bat");//會報錯
// 當使用exec需要執行多條命令時,使用&&進行拼接
rt.exec("cmd /k d: && cd d:/Run/Tomcat/bin && startup.bat");//OK
cmd /c dir 是執行完dir命令后關閉命令窗口。
cmd /k dir 是執行完dir命令后不關閉命令窗口。
cmd /c start dir 會打開一個新窗口后執行dir指令,原窗口會關閉。
cmd /k start dir 會打開一個新窗口后執行dir指令,原窗口不會關閉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM