java调用linux进程,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+"
");

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

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值