Java——調用Linux和Windows下命令行執行程序

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 stub
doCmd();
}

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());
 }
}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章