java在linux执行shell命令
纯洁的小魔鬼 人气:0一.以springboot为例,建立代码
1.IExecCommandServer:
public interface IExecCommandServer { void execCommand(String cmd); }
2.ExecCommandServerImp:
@Service public class ExecCommandServerImp implements IExecCommandServer { @Override public void execCommand(String cmd){ try{ Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(cmd,null,null); InputStream stderr = proc.getInputStream(); InputStreamReader isr = new InputStreamReader(stderr,"GBK"); BufferedReader br = new BufferedReader(isr); String line=""; while ((line = br.readLine()) != null) { System.out.println(line); } }catch (Exception e){ e.printStackTrace(); } } }
3.ExecCommandController:
@CrossOrigin @RestController @RequestMapping("/linux") public class ExecCommandController { @Autowired private IExecCommandServer execCommandServer; @GetMapping("/exec") public ResultMap execCommand(String cmd) throws Exception { execCommandServer.execCommand(cmd); return Result.success("ok"); } }
二,执行示例
http://192.168.142.222:8086/linux/exec?cmd=ls /mnt
日志中输出:
加载全部内容