Java调用shell脚本

Posted 逐鹿者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java调用shell脚本相关的知识,希望对你有一定的参考价值。

最近的新项目有多个地方需要调用shell脚本,这里记录下简单的shell脚本调用方法。代码如下:

 

private void callSh() {
  InputStreamReader stdISR = null; 
        InputStreamReader errISR = null; 
        Process process = null;
  //调用的脚本及路径
  String command = "/home/mw/weblogic/test.sh"; 
  try {
   process = Runtime.getRuntime().exec(command);
   BufferedReader stdBR = new BufferedReader(new InputStreamReader(process.getInputStream()));
   BufferedReader errBR = new BufferedReader(new InputStreamReader(process.getErrorStream()));
         String line = ""; 
         while ((line = stdBR.readLine()) != null) { 
             System.out.println("STD line:" + line); 
         }
   
   while ((line = errBR.readLine()) != null) { 
             System.out.println("ERR line:" +line); 
         }
        
  } catch (Exception e) {
   throw new BusinessException("执行脚本失败===="+e);
  }finally{
   if(stdBR != null){
    stdBR.close(); 
   }
   if(errBR != null){
    errBR.close();
   }
   if(process != null){
    process.destroy();
   }
   
  }
  
 }

 

此代码只适用一般的shell脚本调用,如果shell脚本内容比较多,语法比较复杂,因为没有很好的容错机制,使用此方式可能就会出现问题。这里看过一篇文章,可借鉴:

http://blog.csdn.net/lance_wyvern/article/details/50456903#comments

以上是关于Java调用shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本怎么调用其他shell脚本

怎么用java代码调用远程Linux上的shell脚本

如何在shell脚本里调用另一个shell脚本

windows下java怎样调用shell脚本文件

调用shell脚本 怎么像调用java方法那样传入参数

Java在linux上调用shell脚本