`

[java][io]进程控制

阅读更多

public class OSExecuteException extends RuntimeException {

	private static final long serialVersionUID = 5901555192879431127L;

	public OSExecuteException(String msg){
		super(msg);
	}

}

-----------------------

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

/**
 * 
 * 进程控制
 * 
 */
public class OSExecute {

	public static void command(String command) {
		boolean err = false;
		try {
			Process proc = new ProcessBuilder(command.split(" ")).start();
			BufferedReader reader = new BufferedReader(new InputStreamReader(
					proc.getInputStream()));
			String s = null;
			while ((s = reader.readLine()) != null) {
				System.out.println(s);
			}
			reader.close();

			BufferedReader errReader = new BufferedReader(
					new InputStreamReader(proc.getErrorStream()));
			// 如果进程执行出错,则输出错误信息
			while ((s = errReader.readLine()) != null) {
				System.out.println(s);
				err = true;
			}
			errReader.close();

		} catch (Exception e) {
			// 处理win2K默认抛出的异常
			if (!command.startsWith("CMD /C")) {
				command("CMD /C " + command);
			} else {
				throw new RuntimeException(e);
			}
		}
		if (err) {
			throw new OSExecuteException("Errors executing " + command);
		}
	}

	public static void main(String[] args) {
		OSExecute.command("javap OSExecute");
	}
}


分享到:
评论

相关推荐

    Java IO应届生培训讲义

    Java IO应届生培训讲义是一份面向刚毕业的大学生进行Java IO相关知识的培训资料,它涵盖了Java IO的基础知识、不同的IO模型以及Java中的BIO、NIO和AIO高级IO类库。下面详细解释这些知识点: 1. 用户空间和内核空间 ...

    javaIO详细讲解+详细案例

    ### Java IO 流详解 #### 一、Java IO 流概念及作用 Java IO(Input/Output)流是Java编程语言中的一个重要组成部分,主要用于处理数据的输入与输出。流(Stream)可以理解为一组有序的、有起点和终点的字节集合,...

    JAVA IO同步,异步

    JAVA IO同步、异步详解 IO 操作是计算机系统中最基本的操作之一,它可以分为同步(Synchronous)和异步(Asynchronous)两种模式。同步IO 是指应用程序在执行IO 操作时,需要等待IO 操作完成后才能继续执行其他操作...

    javaIO案例

    在这个"javaIO案例"中,我们关注的是如何使用核心的Java IO类,如`InputStream`、`OutputStream`、`FileInputStream`、`FileOutputStream`以及`PipedInputStream`和`PipedOutputStream`等管道流。这些类构成了Java ...

    java基础之IO流

    - **流程概述**:当一个进程需要从磁盘读取数据时,它会发起一个系统调用(如`read()`),随后控制权转移到内核。内核通过DMA技术将数据从磁盘读入内核缓冲区,再由内核将数据拷贝到进程的用户空间中。 - **3.2 ...

    Java IO流总结

    Java IO流是Java平台中处理输入输出操作的核心组件,它允许程序与各种数据源(如文件、设备、网络连接)进行交互。IO流系统由多个类和接口组成,它们位于java.io包中,为开发者提供了读写数据的丰富功能。在Java中,...

    Java IO系统资料

    Java IO系统是Java编程语言中不可或缺的一部分,它提供了丰富的类库来处理输入和输出操作,包括文件读写、网络通信、数据转换等。这个资料包包含了一份PPT、一个源代码示例以及一些相关的文档,旨在帮助我们深入理解...

    IBM的java IO教程

    Java IO与NIO详解 Java IO(Input/Output)系统是Java平台中处理输入和输出的基础框架,它允许程序读取和写入数据到各种不同的源和目标,如文件、网络连接、内存缓冲区等。Java IO自1.0版本以来就是标准库的一部分...

    java io一些探讨

    Java IO 支持文件锁定机制,通过`FileLock`类可以防止多个进程同时修改同一个文件,从而保证数据的一致性和完整性。 #### 六、后续可以探讨的问题 - 如何有效地处理大文件的读写操作? - 如何利用NIO的新特性来...

    java线程+java IO操作

    3. **线程池与IO**:线程池可以有效地管理和控制并发的IO操作,如定时读取文件或轮询网络数据。 4. **IO异常处理**:在多线程环境中,每个线程都应该捕获并处理自己的IO异常,以避免一个线程的异常影响其他线程。 ...

    java IO流操作详解源代码下载

    Java IO流操作是Java编程中不可或缺的一部分,它用于在程序和外部资源(如磁盘、网络、内存等)之间传输数据。在这个详细的源代码下载中,我们可以通过四篇相关的CSDN博客文章来深入理解Java IO流的工作原理和实际...

    javaIO模型1

    Java IO模型1主要涉及到的是Java在处理网络数据交互时的不同方式。这里有五种主要的IO模型,它们分别是阻塞IO(BIO)、非阻塞IO、IO多路复用、信号量和异步IO(AIO)。理解这些模型的关键在于区分同步与异步以及阻塞...

    Java程序多进程运行模式的实例分析

    在Java编程中,有时我们需要创建并运行多个独立的Java子进程以提高程序的稳定性和并发性。这样的设计允许每个子进程在不同的Java虚拟机(JVM)实例中运行,即使其中一个进程崩溃,也不会影响其他进程的正常运行。...

    java IO章节的总结

    ### Java IO系统总结 Java IO(输入/输出)系统是Java平台的重要组成部分,它提供了用于文件和数据流处理的基础框架。根据数据传输的基本单位不同,Java IO系统主要分为两大类:字节流和字符流。这两类流又各自包含...

    操作系统进程通信Java源码

    1. **管道(Pipes)**:Java提供了`java.io.PipedInputStream`和`java.io.PipedOutputStream`类,用于创建管道连接两个流,一个进程写入数据,另一个进程读取数据。管道通信简单但单向,适用于父子进程或兄弟进程...

    java7源码-JavaIO:JavaIO

    JavaIO ##JavaIO基础面试题 1. 什么是IO 它是一种数据的流从源头到目的地。比如文件拷贝,输入流和输出流都包括了。输入流是从文件中读取数据到存储到进程(process)中,输出流是从进程中读取数据然后写入到目标文件...

    Java IO相关基础知识简介

    Java IO 相关基础知识主要涉及网络通信、协议、套接字以及不同的IO模型。首先,IP协议负责在网络中传输数据,它将数据分割成小块并通过IP包发送,但不保证数据的可靠传输或顺序。TCP(传输控制协议)则是一个面向...

    java.io.FileNotFoundException: *****(Too many open files)

    在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...

    java 进程间利用管道通信实例

    在Java中,`java.io.PipedInputStream`和`java.io.PipedOutputStream`是用于创建管道的类。PipedInputStream作为接收端,它从管道中读取数据;而PipedOutputStream则是发送端,负责将数据写入管道。两者需要通过构造...

Global site tag (gtag.js) - Google Analytics