java在linux本地执行shell命令的实现方法
短信预约 -IT技能 免费直播动态提醒
一.以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命令内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341