java在linux本地执行shell命令的实现方法

目录
  • 一.以springboot为例,建立代码
    • 1.IExecCommandServer:
    • 2.ExecCommandServerImp:
    • 3.ExecCommandController:
  • 二,执行示例

    一.以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

     日志中输出:

    本文转自网络,如有侵权请联系客服删除。