Java通用进程调用
Java进程调用比较简单,但这里有些细节需要注意:当我们使用
Runtime.getRuntime().exec()
这段代码时,通常情况下是没有没问题的,但某些程序的异常信息太多,如果没对异常信息处理,很容易就会造成缓冲区溢出,导致进程阻塞。笔者这里提供一个简单粗暴的方法:
public static Process runProcess(String script, String[] params, String inPath,final Boolean isOutput) {Process process = null;try {process = Runtime.getRuntime().exec(script, params, new File(inPath));final InputStream is1 = process.getInputStream();final InputStream is2 = process.getErrorStream();new Thread(() -> {try {BufferedReader in = new BufferedReader(new InputStreamReader(is2, Charset.forName("GBK")), 20480);String str;while ((str = in.readLine()) != null) {if (isOutput) {System.out.println(str);}}} catch (Exception e) {e.printStackTrace();}}).start();new Thread(() -> {try {BufferedReader in = new BufferedReader(new InputStreamReader(is1, Charset.forName("GBK")), 20480);String str;while ((str = in.readLine()) != null) {if (isOutput) {System.out.println(str);}}} catch (Exception e) {e.printStackTrace();}}).start();} catch (Exception e) {e.printStackTrace();}return process;}
值得注意的是:该方法是异步执行,如果您要同步执行,移除掉第二个
new Thread(() -> {})
即可。
Java通用进程调用相关推荐
- java如何添加进程_如何创建一个进程,如何进程调用进程
java一般用线程就够了,多进程优势在于每个进程互不干扰,劣势在于太耗费内存,任何事情都不是绝对的,在编写Java程序时,有时候需要在Java程序中执行另外一个程序. 1.启动程序 Java提供了两种 ...
- java通用象棋游戏_在通用国际象棋界面周围模拟GraphQL包装器
java通用象棋游戏 The Universal Chess Interface (UCI) has been around a long time and used by many chess en ...
- websphere java和进程管理_jvisualvm/Jconsole监控WAS(WebSphere)中间件
1.登录was控制台https://196.168.119.18:9043/ibm/console/,找到自己的应用程序服务器---java和进程管理---进程定义--JAVA虚拟机,然后配置 通用J ...
- java不同进程的相互唤醒_Java线程生命周期与状态切换
前提 最近有点懒散,没什么比较有深度的产出.刚好想重新研读一下JUC线程池的源码实现,在此之前先深入了解一下Java中的线程实现,包括线程的生命周期.状态切换以及线程的上下文切换等等.编写本文的时候, ...
- java通用对象_有效的Java –所有对象通用的方法
java通用对象 所有对象共有的方法(第3章) 这是Joshua Blochs的有效Java第3章的简短摘要.我仅包含与自己相关的项目. 一般 等值合约将等价关系描述为: x.equals(null) ...
- java什么时候创建进程,Java创建进程
Java创建进程 1 进程的概念 1 1.1 进程的概念 1 1.2 进程的特征 1 1.3 进程与线程区别 1 2 进程的创建 1 2.1 JAVA进程的创建 1 2.1.1 ProcessBuil ...
- Android中的跨进程调用技术AIDL
什么是AIDL Android系统中的进程之间不能共享内存,因此,需要提供一些机制在不同进程之间进行数据通信. 为了使其他的应用程序也可以访问本应用程序提供的服务,Android系统采用了远程过程调用 ...
- EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是hibernate中默认的CacheProvider Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通
EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是hibernate中默认的CacheProvider Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存, ...
- java接口方式调用海康大华摄像机预览。
客户有海康和大华的监控设备,没有买各类安防平台,国标方式需要预留给其他需要接入的系统,得兼容高版本chrome,询问了大华的客服人员,最后选择了该方案进行解决,记录下曲折的过程.延迟大约10秒的样子, ...
最新文章
- linux oracle io 查看,Linux上Oracle是否使用异步io的诊断
- 主窗体界面设计及功能实现
- boost库shared_ptr实现桥接模式
- Hazelcast入门指南第1部分
- java基础—Objcet中的equals方法重写
- 线上排查 | 线上Redis负载暴涨100%,业务中断,这样排查很赞!
- CSS颜色代码(转载)
- 论文插入参考文献神器——EndNote(包括EndNoteX9安装和破解)
- 2022-2027年中国电容器行业市场全景评估及发展战略规划报告
- 计算机能力参考范文,信息技术能力论文,关于关于中学计算机教学的若干相关参考文献资料-免费论文范文...
- html5接金币游戏源码,利用HTML5实现Canvas聚宝盆接金币游戏
- java网页作业提交_基于JAVA网上作业提交批改系统的设计(SQL)(含录像)
- 【小技巧】如何对混乱的HTML/CSS/JS代码进行格式化排版
- 电子书下载:CRM Fundamentals
- 麻省理工学院计算机研究生读几年,2020年麻省理工学院一年制硕士含金量
- Silverlight 教程第二部分:使用布局管理 (木野狐译)
- python网上下载视频,音乐
- 《老梁四大名著情商课》笔记- 杨修之死:越有能力越得认怂
- macosx输入法将英文设成默认
- Ubuntu 截图快捷键 gnome-screenshot 使用
热门文章
- 基于java下的Springboot框架实现幼儿园管理系统
- 四年级上计算机教案简简单单画幅画,《简简单单画幅画》教学设计
- 必胜客中国第3000家店在秦皇岛开业;西门子宣布加速在华发展的一系列重大举措 | 美通企业周刊...
- 报表开发难上手?这里有一份 Fastreport 最新中文用户指南,请查收
- 武汉苹果iPhone6Plus特价3980分期0首付
- android 歌词控件,歌词显示控件的实现上——歌词解析
- 运用aop做日志,实现请求方法的入参、返回结果日志统一打印,避免日志打印格式杂乱,同时减少重复代码
- java计算机毕业设计ssm幸福小区健身器材租赁系统krfhg(附源码、数据库)
- codevs 1154 能量项链
- 软件工程概论学习笔记(1)—— 软件