java调用process.getRuntime阻塞
来源:互联网 发布:oracle sql注释语句 编辑:程序博客网 时间:2024/05/22 08:49
在项目中我们会使用process类来执行linux或者windows命令,但是如果处理不当就会导致线程阻塞。
Process process = Runtime.getRuntime().exec("command"); process.waitFor();
原因:在window/linux平台上面程序执行完毕后往往不会自动关闭,从而导致java应用程序阻塞在waitFor();
导致该现象的一个可能原因是该可执行程序的标准输出比较多,二运行窗口的标准输出缓冲区不够大,解决的办法是,利用java提供process类中的方法。让java虚拟机截获被调用程序的dos运行窗口的标准输出,在waitFor()方法之前读出标准输出缓冲区的内容
Process process = Runtime.getRuntime().exec("command"); BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = br.readLine()) != null) { System.out.println(line); } process.waitFor();
如果标准输出流有内容是你需要的,也可以将line保存起来;
阅读全文
0 0
- java调用process.getRuntime阻塞
- java调用命令行Runtime.getRuntime().exec()阻塞问题
- java.lang.Process调用程序阻塞问题解决
- java.lang.Process调用程序阻塞问题解决
- java.lang.Process调用程序阻塞问题解决
- java.lang.Process调用程序阻塞问题解决
- java调用命令行Runtime.getRuntime().exec()函数碰到的阻塞问题
- java Runtime Process调用可执行文件,子进程阻塞
- Java中Process和Runtime()使用,以及调用cmd命令阻塞在process.waitfor( )的问题解决
- Java中Process和Runtime()使用,以及调用cmd命令阻塞在process.waitfor( )的问题解决
- java.lang.Process 阻塞问题
- java.lang.Process 阻塞问题
- java.lang.Process 阻塞问题
- Java Process 程序阻塞处理
- [乐意黎原创] Process process=Runtime.getRuntime().exec();里面产生停滞(阻塞,blocking),怎么处理?
- java进程调用 Process
- Process process = Runtime.getRuntime().exec(args);
- 关于Java Process 阻塞的问题
- 中值滤波(Median Filter)
- Android无线电信息管理开篇准备工作
- 今天安装mysql-5.7.20-winx64启动服务失败, 在网上查了解决方法
- 闭包实现函数节流
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- java调用process.getRuntime阻塞
- 【银行】银行IT岗面试总结
- win10迅雷磁盘100%怎么办?win10迅雷占有磁盘100%的优化方法
- Node-tesseract OCR Windows使用小结
- mysql 多表合并查询
- 【Linux Is Not Unix】Centos7如何配置动态ip和静态ip
- DMA知识
- 判断是否有jar包冲突
- JAVA之网络编程