搜索
简帛阁>技术文章>java在linux本地执行shell命令的实现方法

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

 日志中输出:

目录一以springboot为例,建立代码1IExecCommandServer:2ExecCommandServerImp:3ExecCommandController:二,执行示例一以spring
需求:安装deb包,设置程序安装后启动,不需要root权限启动程序|不能用root权限启动其他开机启动选项方法:root临时降低权限secUser`whoami|awk'{print$1}'`echo
docker中执行shell命令,需要命令前增加shc,例如:dockerrunubuntushc'cat/data/atxt>btxt'否则,指令无法被正常解析。补充:【Docker应用
本文实例讲述了java执行Linux命令方法。分享给大家供大家参考。具体实现方法如下:代码如下:publicclassStreamGobblerextendsThread{InputStreamis
命令1命令2:如果这个命令执行成功那么执行这个命令。[jb]/usr/xxxx/ytcclb>lsltestsqlrwxrr1xxxxgroup225Nov1514:12testsql[jb]
(1)每个命令之间用;(分号)隔开。(2)每个命令之间用隔开。表示:若前一个命令执行成功,才会执行下一个。这样,可确保所有的命令执行完毕后,其执行过程都是成功这种执行方法,经常运用自动安装S
本文描述两种方式使用java代码执行shell命令,首先使用Runtime类调用exce方法,其次使用ProcessBuilder实例实现更灵活方式。1环境准备执行shell命令之前,我们需要获取j
linux执行shell命令有两种方法当前shell执行shell命令当前shell中产生一个subshell,subshell中执行shell命令1当前shell执行shell命令主要
android中执行java命令方法大家都晓得吗,下面一段内容给大家带来了具体解析。android程序基于java开发,当我们接上调试器,执行adbshell,就可以执行linux命令,但是却并不
如下所示:!/usr/bin/bashHADOOP_HOME"/opt/module/cdh536ha/hadoop250cdh536"HIVE_HOME'/opt/module/cdh536ha/h