java
主页 > 软件编程 > java >

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

2022-02-25 | 秩名 | 点击:

一.以springboot为例,建立代码

1.IExecCommandServer:

1

2

3

4

5

public interface IExecCommandServer {

  

    void execCommand(String cmd);

  

}

2.ExecCommandServerImp:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

@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:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

@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");

    }

  

}

二,执行示例

1

http://192.168.142.222:8086/linux/exec?cmd=ls /mnt

 日志中输出:

原文链接:https://blog.csdn.net/xyy1028/article/details/91349697
相关文章
最新更新