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-value
pb.redirectErrorStream(true);// 重定向错误输出流到正常输出流 try {
pb.directory(new File("d://test1"));// 设置目录test1
pb.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"));// 设置目录test2
pb.command("cmd", "/c", "dir", ">>", "test1.log");// 执行命令,把结果输出到test1.log
Process 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;
}
}
}
Process和ProcessBuilder入门【原】的更多相关文章
- Java进程Runtime、Process、ProcessBuilder调用外部程序
原文地址:https://blog.csdn.net/c315838651/article/details/72085739 通过Java执行系统命令,与cmd中或者终端上一样执行shell命令,最典 ...
- [Java][Android][Process] ProcessBuilder与Runtime差别
在Android中想要进行Ping,在不Root机器的情况下似乎还仅仅能进行底层命调用才干实现. 由于在Java中要进行ICMP包发送须要Root权限. 于是仅仅能通过创建进程来攻克了.创建进程在Ja ...
- Java_Runtime&Process&ProcessBuilder
目录 一.Runtime类 二.Process类 三.ProcessBuilder类 在Java中想调用外部程序,或者执行命令和可运行文件时,网上的典型实例一般都是通过Runtime.getTime( ...
- 7.使用ProcessBuilder执行本地命令(转)
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.IO ...
- [Java][Android][Process] 分享 Process 运行命令行封装类型
我在以前的文章中提到,使用Java不会有一个问题,创建运行命令来创建太多进程后创建进程行语句. [Android] ProcessBuilder与Runtime.getRuntime().exec分别 ...
- Java 9 揭秘(12. Process API 更新)
Tips 做一个终身学习的人. 在本章中,主要介绍以下内容: Process API是什么 如何创建本地进程 如何获取新进程的信息 如何获取当前进程的信息 如何获取所有系统进程的信息 如何设置创建,查 ...
- JDK5.0特性,使用ProcessBuilder执行本地命令
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.IO ...
- ProcessBuilder执行本地命令
/**关键技术剖析 * 用本命令名和命令的参数选项构造ProcessBuilder对象,它的start方法执行命令,启动一个进程,返回一个Process对象 * ProcessBuilder的envi ...
- [Think In Java]基础拾遗3 - 容器、I/O、NIO、序列化
目录 第十一章 持有对象第十七章 容器深入研究第十八章 Java I/O系统 第十一章 持有对象 1. java容器概览 java容器的两种主要类型(它们之间的主要区别在于容器中每个“槽”保存的元素个 ...
随机推荐
- 「AC自动机」学习笔记
AC自动机(Aho-Corasick Automaton),虽然不能够帮你自动AC,但是真的还是非常神奇的一个数据结构.AC自动机用来处理多模式串匹配问题,可以看做是KMP(单模式串匹配问题)的升级版 ...
- JDK9.0.4环境变量配置
电脑不知道怎么就崩溃了...重置了一下,啥都没了 所有都得重新配置 wnm系列之jdk安装与配置 jdk下载,选择windows版本 http://www.oracle.com/technetwork ...
- 洛谷CF1071E Rain Protection(计算几何,闵可夫斯基和,凸包,二分答案)
洛谷题目传送门 CF题目传送门 对于这题,我无力吐槽. 虽然式子还是不难想,做法也随便口胡,但是一些鬼畜边界情况就是判不对. 首先显然二分答案. 对于每一个雨滴,它出现的时刻我们的绳子必须落在它上面. ...
- Hdoj 2018.母牛的故事 题解
Problem Description 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? Input 输入数据由多个测 ...
- 【BZOJ3157/3516】国王奇遇记(数论)
[BZOJ3157/3516]国王奇遇记(数论) 题面 BZOJ3157 BZOJ3516 题解 先考虑怎么做\(m\le 100\)的情况. 令\(f(n,k)=\displaystyle \sum ...
- 如何在jsp中引入bootstrap
如何在jsp中引入bootstrap包: 1.首先在http://getbootstrap.com/上下载Bootstrap的最新版. 您会看到两个按钮: Download Bootstrap:下载 ...
- SpaceVim中vimproc的vimproc_linux64.so未找到
vimproc是我使用的SpaceVim中自动安装的插件,在启动时出现了"找不到dll文件"的提示,通过查阅官网( https://github.com/Shougo/vimpro ...
- WebClient请求接口,get和post方法
1,get方式 string URI = "url"; //实例化 WebClient client = new WebClient(); // client.UseDefault ...
- Flask 应用上下文
应用上下文(application context) 它的字面意思是 应用上下文,但它不是一直存在的,它只是request context 中的一个对 app 的代理(人),所谓local proxy ...
- 【洛谷P1060 开心的金明】
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NNN元钱就行”. ...