`

Process类

    博客分类:
  • Java
阅读更多

 Process类是一个抽象类,其内部所有的方法都是抽象的,Runtime.exec()方法可以创建一个本地进程,并返回Process子类的一个实例。

Process类的API如下:

l  destroy():杀掉子进程

l  exitValue():返回子进程的出口值

l  InputStream getErrorStream():获得子进程的错误流

l  InputStream getInputStream():获得子进程的输入流

l  OutputStream getOutputStream():获得子进程的输出流

l  waitFor():导致当前进程等待,一直等到由该Process对象表示的进程已经终止

 

如何创建Process对象,一般有一下两种方法:  

1、每个 ProcessBuilder 实例管理一个进程属性集。start() 方法利用这些属性创建一个新的 Process 实例。start() 方法可以从同一实例重复调用,以利用相同的或相关的属性创建新的子进程。(ProcessBuilder这个是JDK5中新添加的final类,详细请参看“深入研究java.lang.ProcessBuilder类”一文。     

 

2、Runtime.exec() 方法创建一个本机进程,并返回 Process 子类的一个实例.

 

 

简单实例1(创建子进程):

Process process =  Runtime.getRuntime().exec("a.bat");

process.waitFor();

 

    在windows平台上,以上程序执行完毕后往往并不会自动关闭,从而导致Java应用程序阻塞在waitfor( )。导致该现象的一个可能的原因是,该可执行程序的标准输出比较多,而运行窗口的标准输出缓冲区不够大。解决的办法是,利用Java提供的Process类提供的方法让Java虚拟机截获被调用程序的DOS运行窗口的标准输出,在waitfor()方法之前读出窗口的标准输出缓冲区中的内容。示例如下:

 

简单示例2(读取标准缓冲区内容):

Process process =  Runtime.getRuntime().exec("ipconfig");

BufferedReader bufferedReader =

new BufferedReader(new InputStreamReader(process.getInputStream()));

String line;

while ((line=bufferedReader.readLine()) != null) {

    System.out.println(line);

}

process.waitFor();

 

    通过getOutputStream可以向子进程提供标准输入,如:

 

简单示例3(向子进程提供标准输入):

Process process =  Runtime.getRuntime().exec("a.bat");

bw = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));

bw.write("hello");

bw.newLine();

bw.flush();

bw.close();

分享到:
评论

相关推荐

    内存动态分区Java - process类

    实现内存动态分区,运用Java语言,一共四个类,这是process类

    C#process类的使用

    在.NET框架中,`System.Diagnostics.Process`类是一个强大的工具,用于与系统中的进程进行交互。这个类提供了启动、控制和监视本地或远程计算机上的进程的能力。让我们深入探讨`Process`类的各个方面及其常见用途。 ...

    修改过Process类

    根据提供的标题和描述,“修改过Process类”可能指的是用户或开发者对原生的`Process`类进行了扩展或定制,以便满足特定的需求,同时确保这种修改不会与系统自带的`Process`类产生冲突。 首先,我们来了解一下`...

    Process类 进程知识

    **一、Process类的基本概念** `Process`类是.NET Framework的`System.Diagnostics`命名空间的一部分,它允许开发者获取有关正在运行的进程的信息,或者创建并控制新的进程。一个进程可以包含多个线程,每个线程执行...

    深入研究java.lang.Process类.doc

    Java.lang.Process 类深入研究 Java.lang.Process 类是 Java 类库中的一个核心部分,它提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。下面将对 Process 类...

    c#利用进程(Process)调用系统应用程序源码

    本文将深入探讨如何利用C#的Process类来调用系统应用程序,例如打开计算器、画图软件或记事本等。 首先,我们需要了解Process类的基本用法。以下是一个简单的示例,演示如何使用Process.Start()方法启动计算器程序...

    浅谈C#中Process类的使用详解

    在C#编程中,`Process`类是用于管理和控制操作系统进程的核心工具,它位于`System.Diagnostics`命名空间中。本文将深入探讨`Process`类的使用,包括获取、显示和操作进程的方法。 首先,`Process`类允许开发者获取...

    process类调用记事本计算器c#实现

    在C#编程中,`Process`类是System.Diagnostics命名空间中的一个重要组成部分,它允许开发者与操作系统中的进程进行交互。这个类提供了丰富的功能,包括启动、控制和查询进程的状态。在这个项目中,我们利用`Process`...

    process类 任务管理器 完整c#代码源码

    在C#编程中,`Process`类是System.Diagnostics命名空间中的一个重要组成部分,它为我们提供了管理和控制操作系统进程的能力。本文将详细解析`Process`类在任务管理器中的应用,包括新建任务、结束任务、资源管理、...

    C#调用DOS命令。Process类的用法

    在.NET框架中,C#提供了一种方便的方式来与操作系统交互,包括执行DOS命令,这就是通过使用`System.Diagnostics.Process`类。本篇文章将详细介绍如何利用`Process`类在C#中调用DOS命令,以及相关的核心概念和步骤。 ...

    ShowProcessID.rar_c# process类

    在.NET框架中,C#语言提供了丰富的类库来支持系统级别的操作,其中之一就是`System.Diagnostics.Process`类。这个类主要用于管理和控制操作系统中的进程,包括获取进程列表、监视进程资源使用情况以及与进程进行交互...

    C#中利用process类调用外部程序以及执行dos命令

    在C#编程中,`System.Diagnostics.Process` 类是用于与外部进程交互的重要工具。通过这个类,我们可以启动、控制和管理应用程序,甚至可以执行DOS命令。以下将详细阐述如何利用`Process`类来调用外部程序并执行DOS...

    C#的Process类调用第三方插件实现PDF文件转SWF文件

    在C#编程中,`System.Diagnostics.Process`类是用于管理和控制操作系统进程的关键工具。这篇文章将深入探讨如何利用这个类调用第三方插件,比如SWFTools,将PDF文件转换为SWF文件。首先,让我们详细了解`Process`类...

    Process 启动进程Process 启动进程Process 启动进程

    ### Process类概述 在C#中,`System.Diagnostics.Process`类提供了丰富的功能来管理和控制进程,包括启动、停止、挂起、继续执行进程,以及读取和写入进程的标准输入和输出流等。通过`Process`类,开发人员可以轻松...

    imagePRocess图片处理类_仅包含一个图片处理类

    imagePRocess类能够根据设定的尺寸,将原始图片压缩成小尺寸的缩略图,同时保持原图比例,防止失真。 2. **图片水印**:水印功能允许用户在图片上添加文字或图像,作为版权保护或品牌标识。imagePRocess支持文字和...

    利用Process类启动停止和观察本机的记事本进程的C#winform窗体程序

    在这个场景下,`System.Diagnostics.Process` 类扮演了重要角色,它允许开发者在C# WinForm应用程序中管理进程。本文将详细探讨如何使用`Process`类来启动、停止和观察本机的记事本进程。 首先,我们需要引入`...

    C#做的任务管理器

    对于CPU使用率的计算,我们需要不断地获取System.Diagnostics.Process类的TotalProcessorTime属性,并与上一次获取的时间进行比较,通过计算差值来得到CPU使用率。同时,我们还需要考虑到多核处理器的情况,将所有...

    C#使用Process类调用外部exe程序

    在C#中,通过Process类来进行进程操作。 Process类在System.Diagnostics包中。 示例一 代码如下:using System.Diagnostics; Process p = Process.Start(“notepad.exe”); p.WaitForExit();//关键,等待外部程序...

    C#使用Process类调用外部程序分解

    C#中的Process类是.NET Framework中用于处理本地和远程进程的一个类,它允许程序员启动和停止本地系统进程,并提供了与进程交互的能力。在许多软件开发场景中,我们需要从我们的程序中启动其他外部程序,此时Process...

Global site tag (gtag.js) - Google Analytics