JDK5的ProcessBuilder介绍和操纵实例[Java编程]
本文“JDK5的ProcessBuilder介绍和操纵实例[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1、JDK中的介绍摘录
此类用于成立操作系统进程.
每个 ProcessBuilder 实例管理一个进程属性集.start() 办法操纵这些属 性成立一个新的 Process 实例.start() 办法可以从同一实例反复调用,以利 用相同的或相关的属性成立新的子进程.
每个进程生成器管理这些进程属性:
* 号令
是一个字符串列表,它表示要调用的外部程序文件及其参数(假若有).在 此,表示有效的操作系统号令的字符串列表是依靠于系统的.比方,每一个总体 变量,普通都要成为此列表中的元素,但有一些操作系统,但愿程序能自己标志 号令行字符串——在这种系统中,Java 实现大概需求号令切当地包含这两个元 素.
* 环境
是从变量 到值 的依靠于系统的映射.初始值是当行进程环境的一个副本( 请参阅 System.getenv()).
* 工作目录
默许值是当行进程的当前工作目录,普通按照系统属性 user.dir 来命名.
* redirectErrorStream 属性
最初,此属性为 false,意思是子进程的尺度输出和错误输出被发送给两个 独立的流,这些流可以通过Process.getInputStream() 和 Process.getErrorStream() 办法来拜候.假如将值设置为 true,尺度错误将与 尺度输出归并.这使得关联错误消息和呼应的输出变得更简单.在此情形下,合 并的数据可从 Process.getInputStream() 返回的流读取,而从 Process.getErrorStream() 返回的流读取将直接到达文件尾.
改正良程构建器的属性将影响后续由该对象的 start() 办法启动的进程,但 从不会影响从前启动的进程或 Java 自身的进程.
大大都错误查抄由 start() 办法履行.可以改正对象的状况,但这样 start() 将会失利.比方,将号令属性设置为一个空列表将不会抛出非常,除非 包含了 start().
注意,此类不是同步的.假如多个线程同时拜候一个 ProcessBuilder,而其 中至少一个线程从构造上改正了此中一个属性,它必须 保持外部同步.
很简单启动一个利用默许工作目录和环境的新进程:
Process p = new ProcessBuilder("myCommand", "myArg").start();
下面是一个操纵改正过的工作目录和环境启动进程的例子:
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2");
Map<String, String> env = pb.environment();
env.put("VAR1", "myValue");
env.remove("OTHERVAR");
env.put("VAR2", env.get("VAR1") + "suffix");
pb.directory(new File("myDir"));
Process p = pb.start();
以上是“JDK5的ProcessBuilder介绍和操纵实例[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |