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

 更新时间:2022年02月25日 11:26:49   作者:纯洁的小魔鬼  
本文主要介绍了java在linux本地执行shell命令的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

 日志中输出:

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

相关文章

  • SpringBoot自定义动态数据源的流程步骤

    SpringBoot自定义动态数据源的流程步骤

    动态数据源,本质上是把多个数据源存储在一个 Map 中,当需要使用某一个数据源时,使用 key 获取指定数据源进行处理,本文将给大家介绍一下SpringBoot自定义动态数据源的流程步骤,需要的朋友可以参考下
    2024-06-06
  • SpringCloud OpenFeign超时控制示例详解

    SpringCloud OpenFeign超时控制示例详解

    在Spring Cloud中使用OpenFeign时,可以通过配置来控制请求的超时时间,这篇文章主要介绍了SpringCloud OpenFeign超时控制,需要的朋友可以参考下
    2024-05-05
  • Spring MVC整合Shiro权限控制的方法

    Spring MVC整合Shiro权限控制的方法

    这篇文章主要介绍了Spring MVC整合Shiro权限控制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • maven项目中<scope>provided</scope>的作用及说明

    maven项目中<scope>provided</scope>的作用及说明

    这篇文章主要介绍了maven项目中<scope>provided</scope>的作用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java HTTP协议收发MQ 消息代码实例详解

    Java HTTP协议收发MQ 消息代码实例详解

    这篇文章主要通过实例代码为大家详细介绍了如何在Java 环境下使用 HTTP 协议收发 MQ 消息,需要的朋友可以参考下
    2017-04-04
  • 将Java程序的输出结果写入文件方法实例

    将Java程序的输出结果写入文件方法实例

    这篇文章主要给大家介绍了关于将Java程序的输出结果写入文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • mybatis 获取更新(update)记录的id之<selectKey>用法说明

    mybatis 获取更新(update)记录的id之<selectKey>用法说明

    这篇文章主要介绍了mybatis 获取更新(update)记录的id之<selectKey>用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Java中replace、replaceAll和replaceFirst函数的用法小结

    Java中replace、replaceAll和replaceFirst函数的用法小结

    相信会java的同学估计都用过replace、replaceAll、replaceFirst这三个函数,可是,我们真的懂他们吗?下面通过这篇文章大家再来好好学习学习下这几个函数。
    2016-09-09
  • spring @Conditional的使用与扩展源码分析

    spring @Conditional的使用与扩展源码分析

    这篇文章主要介绍了spring @Conditional的使用与扩展,这里需要注意如果Condition返回的是false,那么spirng就不会对方法或类进行解析,具体源码分析跟随小编一起看看吧
    2022-03-03
  • Java实现threadLocal线程池获取

    Java实现threadLocal线程池获取

    本文主要介绍了Java实现threadLocal线程池获取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论