ProcessBuilder 用法详解 超、凢脫俗 2022-01-06 14:43 675阅读 0赞 **原文:https://blog.csdn.net/zhoujing\_0424/article/details/79917368 ** 1. 简介 ProcessBuilder类是J2SE 1.5在java.lang中新添加的一个新类,此类用于创建操作系统进程,它提供一种启动和管理进程(也就是应用程序)的方法。在J2SE 1.5之前,都是由Process类处来实现进程的控制管理。 每个 ProcessBuilder 实例管理一个进程属性集。它的start() 方法利用这些属性创建一个新的 Process 实例。start() 方法可以从同一实例重复调用,以利用相同的或相关的属性创建新的子进程。2. 示例 下面是一个使用修改过工作目录和环境启动进程的例子,并重定向标准输出和标准错误到自定义日志文件。 ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2"); //设置环境变量,初始值是当前进程环境的一个副本System.getenv() 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")); File log = new File("log"); //redirectErrorStream 属性默认值为false,意思是子进程的标准输出和错误输出被发送给两个独立的流,这些流可以通过 Process.getInputStream() 和 Process.getErrorStream() 方法来访问。 //如果将值设置为 true,标准错误将与标准输出合并。这使得关联错误消息和相应的输出变得更容易。在此情况下,合并的数据可从 Process.getInputStream() 返回的流读取,而从 Process.getErrorStream() 返回的流读取将直接到达文件尾。 pb.redirectErrorStream(true); pb.redirectOutput(Redirect.appendTo(log)); //启动进程 Process p = pb.start(); assert pb.redirectInput() == Redirect.PIPE; //重定向标准输出到日志 assert pb.redirectOutput().file() == log; assert p.getInputStream().read() == -1; 3. ProcessBuilder API //构造方法 //利用指定的操作系统程序和参数构造一个进程生成器。 ProcessBuilder(List<String> command) //利用指定的操作系统程序和参数构造一个进程生成器。 ProcessBuilder(String… command) //方法 //返回此进程生成器的操作系统程序和参数。 command() //设置此进程生成器的操作系统程序和参数。 command(List<String> command) //设置此进程生成器的操作系统程序和参数。 command(String… command) //返回此进程生成器的工作目录。 directory() //设置此进程生成器的工作目录。 directory(File directory) //返回此进程生成器环境的字符串映射视图。 environment方法获得运行进程的环境变量,得到一个Map,可以修改环境变量 environment() //返回进程生成器是否合并标准错误和标准输出;true为合并,false为不合并 redirectErrorStream() //设置此进程生成器的 redirectErrorStream 属性。默认值为false不合并 redirectErrorStream(boolean redirectErrorStream) //使用此进程生成器的属性启动一个新进程。 start()
相关 Java ProcessBuilder类学习 文章目录 一、ProcessBuilder基础 1、ProcessBuilder类 1.1 概述 1.2 进程 怼烎@/ 2023年09月30日 13:48/ 0 赞/ 12 阅读
相关 java ProcessBuilder 文章目录 java ProcessBuilder code java ProcessBuilder code public 旧城等待,/ 2023年06月27日 03:08/ 0 赞/ 19 阅读
相关 Java ProcessBuilder示例 在Java中,我们可以使用`ProcessBuilder`轻松调用外部命令: ProcessBuilder processBuilder = new ProcessB 布满荆棘的人生/ 2023年02月15日 05:10/ 0 赞/ 10 阅读
相关 JNDI用法详解 > JNDI全称(Java Naming and Directory Interface),是java命名和目录接口。它是一个应用程序设计的API,为开发人员提供了查找和访问各 谁践踏了优雅/ 2022年12月23日 12:26/ 0 赞/ 311 阅读
相关 defaultdict用法详解 defaultdict用法详解 defaultdict与dict区别 defaultdict使用方法 defaultdict与dict区别 ゞ 浴缸里的玫瑰/ 2022年10月08日 05:48/ 0 赞/ 254 阅读
相关 @RequestMapping用法详解 原文地址:https://my.oschina.net/kolbe/blog/509810 一、@RequestMapping 简介 在Spring MVC 中使用 一时失言乱红尘/ 2022年06月17日 08:54/ 0 赞/ 248 阅读
相关 FormData用法详解 FormData 对象: ![formdata][] 一.创建一个formData对象实例的方式 1、创建一个空对象 var formData = new 爱被打了一巴掌/ 2022年03月22日 03:15/ 0 赞/ 364 阅读
相关 ProcessBuilder 用法详解 原文:https://blog.csdn.net/zhoujing\_0424/article/details/79917368 1. 简介 ProcessBuilde 超、凢脫俗/ 2022年01月06日 14:43/ 0 赞/ 676 阅读
相关 JavaSE_指令_ProcessBuilder JavaSE\_指令\_ProcessBuilder 说明 示例代码 场景 实现 说明 此类用于创建操作系统进程。 每个 ╰半夏微凉°/ 2021年10月06日 03:50/ 0 赞/ 304 阅读
还没有评论,来说两句吧...