Java——調用Linux和Windows下命令列執行程式__web

來源:互聯網
上載者:User

1.項目需求

需要在後端調用其他程式並且擷取返回結果


2.第一個版本環境:Windows

//cmdstr為命令參數 public boolean excuteCmd(String cmdstr) {        String[] cmd = new String[]{                "cmd.exe", "/C", cmdstr};        BufferedReader br = null;        String line = null;        Runtime runtime = Runtime.getRuntime();        try {            Process pro = runtime.exec(cmd);            StringBuffer sbOut = new StringBuffer(1000);            br = new BufferedReader(new InputStreamReader(pro.getInputStream()));            if((line = br.readLine()) != null){                String[] sourceStrArray=line.split(":");                System.out.println(sourceStrArray[0]+"="+sourceStrArray[1]);                if(sourceStrArray[0].equals("Status")&&sourceStrArray[1].equals("SUCCESS")){                    return true;                }else{                    return false;                }            }            return false;        } catch (Exception e) {            System.out.println("Excute Error:" + e);            return false;        }    }




3.第二個版本環境:Linux
參考部落格:http://www.linuxidc.com/Linux/2012-04/58416.htm
public class LinuxStart {static String jarFile="java -jar /home/ictuser/test_Linux/HelloWorld.jar";static String[] cmd1 = { "sh", "-c", jarFile };String[] cmd2 = { "sh", "-c", "lsmod |grep linuxVmux" };public static void main(String[] args) {// TODO Auto-generated method stubdoCmd();}public static void doCmd(){StringBuffer buf = new StringBuffer(1000);    String rt="-1"; try {  Process pos = Runtime.getRuntime().exec(cmd1);    InputStreamReader ir = new InputStreamReader(pos.getInputStream());   LineNumberReader input = new LineNumberReader(ir);   String ln="";   while ((ln =input.readLine()) != null) {       buf.append(ln+"<br>");       System.out.println(ln);   }   rt = buf.toString();   input.close();   ir.close();    } catch (java.io.IOException e) {  rt=e.toString(); }catch (Exception e) { System.out.println(e.toString()); }}}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.