/**
*@Description //执行shell脚本
*@Param [cmd]
*@Return boolean
*/
public static boolean execSchellCmd(Stringcmd[]) throws Exception{
LineNumberReader lnr = null;
InputStreamReader isr = null;
try{
//解决脚本没有执行权限
ProcessBuilder builder = new Processbuilder("/bin/chmod","755",cmd[0]);
Process ps = builder.start();
ps.waitFor();
//执行指定的字符串命令
Process process = Runtime.getRuntime().exec(cmd);
//获取子进程正常输出的输入流
isr = new InputStreamReader(process.getInputStream());
lnr = new LineNumberReader(isr);
String line;
StringBuffer sb = new StringBuffer();
//逐行读取文本行
while((line = lnr.readLine()) !=null){
sb.append("\n").append(line);
}
sb.append("\n").append("----------------------");
//等待进程执行完成,如返回0,表示正常完成,否则表示异常
return process.waitFor()==0;
}fianlly{
if(lnr!=null){
lnr.close();
lnr = null;
}
if(isr != null){
isr.close();
isr = null;
}
}
}
---------------------------------------------------------------------------调用------------------------------------------------------------------------------------
//拼接执行命令
String[] cmd new String[]{"/home/ap/hab8haap/POSQSCP.sh"};
String param = "20210556";
cmd = ArrayUtils.addAll(cmd,param);
//执行shell
boolean execschellflag = execSchellCmd(cmd);
原文:https://www.cnblogs.com/cjl-lhj/p/14801370.html