介绍java的Process类

package mldn.basic;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class PingWWW {
	public static void main(String[] args) {
		BufferedReader br = null;
		try {
			Process p = Runtime.getRuntime().exec("ping www.baidu.com");
			br = new BufferedReader(new InputStreamReader(p.getInputStream()));
			String line = null;
			StringBuilder sb = new StringBuilder();
			while ((line = br.readLine()) != null) {
				sb.append(line + "\n");
			}
			System.out.println(sb.toString());
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}
}

 public abstract class Process extends Object

 

 

ProcessBuilder.start()和Runtime.exec方法创建一个本机进程,并返回process子类的一个实例,该实例可用来控制进程并获取相关信息。Process类提供了执行从进程输入、执行输出到等待进程完成、检查进程的退出状态及销毁(杀掉)进程的方法。

创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,守护进程,Microsoft Windows上的Win16/Dos进程,或者Shell脚本。创建的子进程没有自己的终端或控制台。它的所有标准io(即 stdin、stdout和stderr)操作都将通过三个流(getOutputStream()、getInputStream()、getErrorStream())重定向到父进程。父进程使用这些流来提供到子进程的输入和获得从子进程的输出。因为有些本机平台仅针对标准输入和输出流提供有限的缓冲区大小,如果读写子进程的输出流或输入流迅速出现失败,则可能导致子进程阻塞,甚至产生死锁。

当没有 Process 对象的更多引用时,不是删掉子进程,而是继续异步执行子进程。

对于带有 Process 对象的 Java 进程,没有必要异步或并发执行由 Process 对象表示的进程。

方法摘要
abstract
 void
destroy()
          杀掉子进程。
abstract
 int
exitValue()
          返回子进程的出口值。
abstract  InputStream getErrorStream()
          获取子进程的错误流。
abstract  InputStream getInputStream()
          获取子进程的输入流。
abstract  OutputStream getOutputStream()
          获取子进程的输出流。
abstract
 int
waitFor()
          导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止

 

 实例:java程序中运行Ping命令

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值