好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

 日志中输出:

到此这篇关于java在linux本地执行shell命令的实现方法的文章就介绍到这了,更多相关java在linux执行shell命令内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

原文链接:https://blog.csdn.net/xyy1028/article/details/91349697

查看更多关于java在linux本地执行shell命令的实现方法的详细内容...

  阅读:30次