因业务需求,需要在通过前端调用服务端接口来执行cmd命令,具体操作如下
public String execCmdOrder(String cmdCommand) {
if (StringUtils.isEmpty(cmdCommand)){
throw new RuntimeException("需要执行的命令不可以为空");
}
/*if (***其他判断条件***){
throw new RuntimeException("不满足判断条件的原因");
}*/
//组装cmd 命令
String cmd= cmdCommand ;
BufferedReader br=null;
Process process=null;
//执行命令结果
StringBuilder result = null;
try {
//执行cmd命令
process=Runtime.getRuntime().exec(cmd);
//获取cmd命令的输出结果
br=new BufferedReader(new InputStreamReader(process.getInputStream()));
result= new StringBuilder();
String tmp;
//组装命令执行结束后返回值
while ((tmp= br.readLine())!=null){
result.append(tmp).append("\n");
}
process.waitFor();
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}finally {
if (br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (process != null) {
process.destroy();
}
System.out.println("执行命令结束以后控制台返回结果为 :" + result);
}
return result.toString();
}