失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Java中使用zt-exec执行多shell/Linux命令 执行日志实时推送前端

Java中使用zt-exec执行多shell/Linux命令 执行日志实时推送前端

时间:2022-12-23 04:40:46

相关推荐

Java中使用zt-exec执行多shell/Linux命令 执行日志实时推送前端

在Java中执行Linux命令,日志都是在命令执行完返回,现在用zt-exec实现日志实时同步输出

第一步:maven中引用zt-exec

<dependency><groupId>org.zeroturnaround</groupId><artifactId>zt-exec</artifactId><version>1.11</version></dependency>

第二步:编写工具类并测试

import com.yeexun.webgl.config.websocket.WebSocketServer;import org.zeroturnaround.exec.ProcessExecutor;import org.zeroturnaround.exec.stream.LogOutputStream;import java.io.IOException;import java.util.UUID;import java.util.concurrent.TimeoutException;/*** @Author 小伍子安* @Date /8/5 16:33* @Version 1.0*/public class ZtExecCommandServer {public static Integer exec(String sid,String... command) throws InterruptedException, TimeoutException, IOException {int exit = new ProcessExecutor().command(command).destroyOnExit().redirectOutput(new LogOutputStream() {@Overrideprotected void processLine(String s) {System.out.println("成功日志:"+s);try {WebSocketServer.sendInfo("<span style='color:green;'>"+s+"</span>",sid);} catch (IOException e) {e.printStackTrace();}}}).redirectError(new LogOutputStream() {@Overrideprotected void processLine(String s) {System.out.println("错误日志:"+s);try {WebSocketServer.sendInfo("<span style='color:red;'>"+s+"</span>",sid);} catch (IOException e) {e.printStackTrace();}}}).execute().getExitValue();return exit;}public static void main(String[] args) throws InterruptedException, IOException, TimeoutException {exec(UUID.randomUUID().toString(),"ping","");}}

zt-exec源码地址:zt-exec.

如果觉得《Java中使用zt-exec执行多shell/Linux命令 执行日志实时推送前端》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。