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