棒棒的

最近在公司实习,遇到一个让人头疼的bug,(debug的时候当执行在readLine()时,就卡死了,不能执行了,但是javaw也没有“死掉”)上网查遍解决方案,有的读不明白,有的没有从根本上解决问题,后来求助同事,瞬间就给解决了,这个bug值得记录下来,以后一定还会遇到的!

使用java来执行cmd命令

pulic static void executeCommand(String command)throws Exception{

Process ps = null;

InputStreamReader input = null;

BufferedReader errorBuf = null;

if("".equals(command)){

抛出一个异常。。。。。

}

try{

ps = Runtime.getRuntime().exec(command);

InputStream inputStream = null;

BufferedReader inputReader = null;

inputStream = new InputStreamReader(ps.getInputStream());

inputReader = new BufferedReader(inputStream);

System.out.println(inputReader.toStream());

StringBuilder inputBuf = new StringBuilder();

String inputLine = null;

while((inputLine=inputReader.readLine()) != null){

inputBuf = append(inputLine);

}


input = new InputStreamReader(ps.getErrorStream());

errorBuf = new BufferedReader(input);

System.out.println(errorBuf.toString());

StringBuilder buf = new StringBuilder();

String line = null;

while((line=errorBuf.readLine()) != null){

buf.append(line);

}

//等待命令执行结束,获取执行结果

ps.waitFor();

String errorStr = buf.toString();

if (errorStr != null && !errorStr.equals("")) {
if ("
lalala_1004".equals(errorStr)) {


throw new DoorsInternalException(errorStr);
}else if ("
lalala_1005".equals(errorStr)) {


throw new AuthenticationException(errorStr);
}
.......其他异常

finally {

if(errorBuf != null){
try {
errorBuf.close();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
if(input != null){
try {
input.close();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
if (ps != null) {
ps.destroy();

}


}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值