java: 多进程简易操作
来源:互联网 发布:淘宝印度大麻种子 编辑:程序博客网 时间:2024/06/05 09:09
java
用了这么久,貌似没有使用过多进程。貌似一般的需求里面也不涉及这个方面。
但是,有时候确实有这种奇怪的需求,比如xxx.
于是,通过翻阅api
文档,以及参考往上博客,写了一个简单的多进程程序。
package com.pythoncat.java.process;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.Arrays;/** * Created on 2017/8/11. * from http://www.jianshu.com/p/428bbc3852a7 * @author cat */public class NewlyProcess { public static void main(String[] args) throws IOException, InterruptedException { createProcess("java", "-version");// CmdToolkit.readConsole("java",true); createProcess("git","status"); } private static void createProcess(String... cmd) throws IOException, InterruptedException {// ProcessBuilder pb = new ProcessBuilder("java", "-version"); ProcessBuilder pb = new ProcessBuilder(cmd); pb.redirectErrorStream(true); Process process = pb.start(); process.waitFor(); InputStream in = process.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line; StringBuilder sb = new StringBuilder(); sb.append("---------------------------------\n"); sb.append("commands:\t") .append(Arrays.toString(cmd)) .append("\n");// System.out.println(sb); sb.append("RESULT:\t").append("\n"); while ((line = br.readLine()) != null) { sb.append(line).append("\n"); } sb.append("---------------------------------\n"); System.out.println(sb.toString()); }}
代码量很少,主要的代码还是用于打印输出了。输出结果如下:
---------------------------------commands: [java, -version]RESULT: java version "1.8.0_131"Java(TM) SE Runtime Environment (build 1.8.0_131-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)------------------------------------------------------------------commands: [git, status]RESULT: fatal: Not a git repository (or any of the parent directories): .git---------------------------------
其中关键逻辑至于3行
ProcessBuilder pb = new ProcessBuilder(cmd);pb.redirectErrorStream(true);Process process = pb.start();process.waitFor();
阅读全文
0 0
- java: 多进程简易操作
- 进程间共享内存操作简易封装
- Java 进程操作
- java操作Excel工具类简易版
- 简易HTTP服务器(多进程版本)
- linux中操作java进程
- nodejs 简易守护进程
- Java与.NET的SOA互操作简易教程
- Java编写的简易记事本例子 打开另存为文件操作
- 简易的java操作数据库进行增删改查
- swoole多进程操作
- java多线程之java操作进程
- [Linux]Shell多进程并发—简易版
- python实现简易web多进程静态服务器
- vi简易操作说明
- NHibernate---简易操作流程
- ABAddressBook简易操作
- svn简易操作
- hdoj 1062
- C++实现一个单例模式(懒汉与饿汉)
- HDU1011
- 可靠数据传输原理(下)
- 算法学习笔记--6.trailing-zeros
- java: 多进程简易操作
- 论文笔记一Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
- HDOJ1671 字典树入门题+模板程序(指针实现)
- 数论&&组合数学_模板
- centos7 搭建git2.11.0和gitosis服务
- 第九天
- 使用命令行编译打包运行自己的MapReduce程序 hadoop2.7.3
- Unity3D
- JZOJ1203. 染色的立方体(2017.8B组)