java 调用系统指令
2023-09-14 09:06:39 时间
String msg = ""; Process process = null; try { ProcessBuilder pb = new ProcessBuilder(); //因为process执行命令并不是像窗口中执行shell一样,所以需要添加参数,用于执行脚本 // pb.command(ffmpegPath, "-y", "-i", filePath, "-ss", n + "", "-f", "image2", targetUrl);
pb.command("这里写指令");
//processBuilder支持将inputStream与ErrorStream合并为一个Stream,即所有的输出信息都合并到inputStream中,这样做可以减少一个线程 pb.redirectErrorStream(true); process = pb.start(); //由于process机制原因会导致死锁,所以需要在waitfor方法之前,创建线程用于处理inputstream中缓冲区的数据,这也是为什么要合并inputstream和errorstream的原因,在这里可以少创建一个线程 readInputStream(process.getInputStream()); //返回0则表示输出正常 int resultCode = process.waitFor(); } catch (Exception e) { msg = ExcBox.getExcMsg(e); log.info(msg); } finally { try { if (null != process) { process.getErrorStream().close(); process.getInputStream().close(); process.getOutputStream().close(); } } catch (Exception ignored) { } }
//创建线程处理输出流【其实就是真实的写指令】 private static void readInputStream(InputStream in) { executor.execute(new Runnable() { @Override public void run() { InputStreamReader reader = null; try { reader = new InputStreamReader(in); LineNumberReader line = new LineNumberReader(reader); String str = null; while ((str = line.readLine()) != null) { System.out.println(str); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (reader != null) { reader.close(); } } catch (IOException e) { e.printStackTrace(); } } } }); }
相关文章
- JAVA-JSP内置对象之request获得参数的参数值(一个值)
- Java实现 蓝桥杯 图书排列(全排列)
- Java实现 洛谷 P1424 小鱼的航程(改进版)
- java实现最大镜像子串
- java实现公式解析
- Java实现币值最大化问题
- 【JAVA SERVLET 开发系列之一】在MAC系统安装APACHE TOMCAT的详细步骤
- MariaDB:安装、配置、JAVA源代码样例
- java通过System.getProperty获取系统属性
- Java跨平台(系统)的主要原理
- java 并发编程
- Java RMI原理与使用
- 61. 如何使用 Java 程序通过 SAP Java Connector 调用 ABAP 系统的函数
- 如何使用 Java 程序通过 SAP Java Connector 调用 ABAP 系统的函数试读版
- 使用Java connector消费ABAP系统的函数
- 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
- java常用中间件处理数据交互、连接数据分离之后两个系统间的通信
- 7个连环问揭开java多线程背后的弯弯绕
- java - 调window系统指令的三种方式
- Java-idea-FindBugs字节码级别潜在bug查看
- java 不同意同一账户不同IP 同一时候登录系统解决的方法 兼容IE Firefox
- java系统设计 面试题
- 基于Java+SpringBoot+Vue+Uniapp前后端分离疫情酒店管控系统设计与实现(有需求文档、演示视频)
- 基于Java+SpringBoot+Vue+uniapp前后端分离图书阅读系统设计与实现
- Java注册为Windows 系统服务——筑梦之路