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
对象表示的进程。
实例:java程序中运行Ping命令
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();
}
}
}
}
}
分享到:
相关推荐
JAVA Process 使用JAVA Process 使用JAVA Process 使用JAVA Process 使用JAVA Process 使用JAVA Process 使用
实现内存动态分区,运用Java语言,一共四个类,这是process类
主要介绍了Java Process类的详解及实例代码的相关资料,需要的朋友可以参考下
java imageProcess 图像处理程序模板,java imageProcess 图像处理程序模板
深入研究java.lang.Process类
jni win32 sdk java 任务管理器
NULL 博文链接:https://sghfofo.iteye.com/blog/571105
主要介绍了Java Process详解及实例的相关资料,需要的朋友可以参考下
JSF是由Java Community Process (JCP)制定的一个Web应用框架标准。JSF具有良好定义的请求处理生命周期和丰富的组件层次结构,旨在推动基于Java的Web用户界面开发的简易性。利用JSF提供的可重用、可扩展、基于组件的...
JAVA语言实现对图像进程的控制和操作,内含25个文件
Java中使用Runtime和Process类运行外部程序
绍Java Process命令
ExcelProcess.java
用Java编写的图像处理的小程序,效果不错
进程控制块的设计与实现 进程的创建,执行,阻塞,唤醒。 还有进程调度,采用了短作业优先和先来先服务算法
Java 常用的流程控制操作经典代码Java process control operations used classic code
主要介绍了Java编程使用Runtime和Process类运行外部程序的方法,结合实例形式分析了java使用Runtime.getRuntime().exec()方法运行外部程序的常见情况与操作技巧,需要的朋友可以参考下
Forker 是一个 Java 库,可让您更好地控制外部进程并提供 ProcessBuilder 的替代品。 该库基本上有 3 个主要组件: ForkerClient 替换 ProcessBuilder 只需构建一个进程,让 Forker 处理检查退出代码和重定向或捕获...
Java Design Objects UML Process
利用app_process实现免root调用shell_Java_下载.zip