Process和ProcessBuilder入门【原】
ProcessBuilder优点
ProcessBuilder(XXX).start()和Runtime.exec(XXX)功能相同,主要优点在使用过程中感受有:
- 前者是jdk1.5后的新方式
- 配置环境变量时更优雅
- 对当前目录的控制也更合理
- 错误流重定向特别方便
- 进程控制更简洁
ProcessTool.java
package test;import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.Map;/*** * @author King* @see* @version createTM:2017年11月23日 下午3:41:38*/ public class ProcessTool {public static void main(String[] args) throws IOException {execWindowCmd();} public static void execWindowCmd() throws IOException {ProcessBuilder pb = new ProcessBuilder();// 命令Map<String, String> env = pb.environment();// 独立环境变量System.out.println(env);// 打印环境变量env.put("MY_NAME", "KING");// 添加环境变量key-valuepb.redirectErrorStream(true);// 重定向错误输出流到正常输出流try {pb.directory(new File("d://test1"));// 设置目录test1pb.command("cmd", "/c", "dir");// 执行命令 Process process1;process1 = pb.start();// 启动进程 BufferedReader br1;br1 = new BufferedReader(new InputStreamReader(process1.getInputStream(), "gbk"));String line1 = null;while ((line1 = br1.readLine()) != null) {System.out.println(line1);}pb.directory(new File("d://test2"));// 设置目录test2pb.command("cmd", "/c", "dir", ">>", "test1.log");// 执行命令,把结果输出到test1.logProcess process2 = pb.start();// 启动进程BufferedReader br2 = new BufferedReader(new InputStreamReader(process2.getInputStream(), "gbk"));String line2 = null;while ((line2 = br2.readLine()) != null) {//因为结果输出到了文件,所以本处无信息返回 System.out.println(line2);}} catch (IOException e) {e.printStackTrace();throw e;}} }
Java Runtime.exec()的使用
深入研究java.lang.ProcessBuilder类
转载于:https://www.cnblogs.com/whatlonelytear/p/7885270.html
Process和ProcessBuilder入门【原】相关推荐
- 零基础入门原画必知的技巧
原画设计是当前热门职业之一,有很多小白在初期学习原画设计会感到很困惑,不知道从何下手, 在学习初期,掌握好这5个通用的小技巧,一定能让你把握住原画的脉络.但是要创作更为精彩的作品,一定要不断练习观察, ...
- 基础入门原画,需要学习什么
关于原画,你了解多少?现在很多在学习原画的朋友们,都是因为自己喜欢而学习的原画,还有想以后从事原画这方面的工作的,但是当我们的原画学习出来之后是干嘛的?原画有那些分类?可以从事哪方面的工作?有些人不是 ...
- vba vbscript.regexp加载dll错误_[原]排错实战——拯救加载调试符号失败的IDA
本文之前发表的时候有些问题,作为强迫症患者的我又重新编辑后再次发表.如果您已经看过,请忽略.望见谅. 缘起 最近想借助IDA逆向一个函数.在windows下,调试器(比如vs, windbg)可以通过 ...
- [原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?
前言 如果我们自己的程序的CPU Usage(CPU占用率)飙升,并且居高不下,很有可能陷入了死循环.你知道怎么快速定位并解决吗?今天跟大家分享几种定位方法,希望对你有所帮助. 如何判断是否有死循环? ...
- [原]排错实战——拯救加载调试符号失败的IDA
本文之前发表的时候有些问题,作为强迫症患者的我又重新编辑后再次发表.如果您已经看过,请忽略.望见谅. 缘起 最近想借助IDA逆向一个函数.在windows下,调试器(比如vs, windbg)可以通过 ...
- process 类 java_编写可执行jar——java的Process类的使用(二)
你知道怎么在控制台使用ping吗?那你知道怎么在java中使用ping吗? 1.批处理文件 批处理文件大家一定不陌生.接触最多的应该就是tomcat中的start.bat或者start.sh了.bat ...
- mysql怎么显示创表的语句_141张图带你 MySQL 入门
SQL 基础使用 MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角 SQL,SQL 的全称是 Structure Query ...
- process设置超时_概述并设置Process Center单集群拓扑
process设置超时 这个由三部分组成的系列指南将指导您使用IBM Business Process Manager(BPM)高级版V8.5建立具有常用拓扑的业务流程管理环境. 本系列文章首先快速概 ...
- Java Process:另一个程序正在使用此文件,进程无法访问
最近处理奇怪的问题时,犯了个低级错误,浪费了不少时间,甚至都看了 jdk 底层的 c 代码. 下面这段测试代码是在 Windows 环境运行的(Mac和linux换成 /bin/sh,-c 后没有问题 ...
最新文章
- LeetCode刷题-1
- 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。
- Neo4j: 迁移MySQL的数据到Neo4j
- 四川大学计算机学院 期末考试安排,四川大学《计算机组成原理》2018期末考试B卷.doc...
- spark入门_入门必读 | Spark 论文导读
- 第二十九期:程序员们该如何破局!
- 云小课 | 一分钟了解AppCube中的应用
- 汇编语言常见错误(转载)
- 蒙哥马利java算法_算法详解 - 蒙哥马利算法的概念与原理
- tensorflow之视频质量诊断
- 管理感悟:遇到问题,使用矩阵测试法
- 进程间通讯:实现基于多进程的文件拷贝
- 什么是Wiegand协议?什么是韦根26? 什么是韦根34?
- TrueType字体结构
- HTML巩固练习之字体样式
- 苹果计算机怎样恢复桌面,mac桌面整理_使Mac桌面恢复整洁的四种技巧
- 安装监控的地方没有WiFi,没有无线网络,如何实现远程监控?
- 涂涂乐的详细实现之二--UI布局和效果
- 用相关法辨识系统的脉冲响应 matlab,利用相关分析法辨识脉冲响应
- 手把手教你制作智能桌宠(小可爱哦!)
热门文章
- 如何批量转.jpg/.bmp图片
- 基于深度学习的病理_组织病理学的深度学习(第二部分)
- 聚类树状图_聚集聚类和树状图-解释
- Rebuild Instance 操作详解 - 每天5分钟玩转 OpenStack(37)
- VHDL其他顺序语句
- 低级键盘钩子 DLL
- python有大括号吗_只有我一个人觉得Python取消了大括号而显得结构更加混乱了吗?...
- 主管护士需要考计算机和英语吗,2020主管护师改为机考,一定要注意这些问题!...
- 电脑下面的任务栏怎么取消隐藏_电脑工具栏怎么调到下面
- mysql 数据库还原 不齐_请教mysql数据库还原问题。