Java——调用Linux和Windows下命令行执行程序

来源:互联网 发布:韩顺平qq项目源码微盘 编辑:程序博客网 时间:2024/05/29 14:00

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


0 0
原创粉丝点击