Java 中的 ProcessBuilder2024 年 9 月 10 日 | 阅读 7 分钟 ProcessBuilder类用于在Java中创建操作系统进程。ProcessBuilder类的每个实例都管理着一个进程属性的集合。ProcessBuilder类不能被同步。在JDK 5.0之前,使用Runtime.exec()方法来创建和执行进程。请注意,ProcessBuilder类继承自Object类。 ProcessBuilder类的构造函数ProcessBuilder(List command): 使用指定的参数和操作系统程序构造进程生成器。 ProcessBuilder(String… command): 使用指定的参数和操作系统程序构造进程生成器。 ProcessBuilder类的主要方法1. List command(): 该方法返回进程生成器的参数和操作系统程序。 语法: public List command(). 返回值: 参数和进程生成器的程序。 异常: 当参数为null时抛出NullPointerException。 文件名: ProcessBuilderDemo.java 输出 command: [notepad++.exe] 2. ProcessBuilder directory(File directory): 该方法设置进程生成器的当前工作目录。start()方法调用的子进程将使用此目录作为工作目录。 语法: public ProcessBuilder directory(File directory). 返回值: 进程生成器。 异常: NA。 文件名: ProcessBuilderDemo1.java 输出 directory: src 3. Map environment(): 此方法返回进程生成器环境的字符串映射视图。当创建进程生成器时,环境将用当前进程环境的副本进行初始化。 语法: public Map environment() 返回值: 进程生成器的环境。 异常: SecurityException - 如果存在安全管理器,并且其checkPermission()方法未授予访问进程环境的权限。 文件名: ProcessBuilderDemo2.java 输出 Key = USERDOMAIN_ROAMINGPROFILE, Value = DESKTOP-2CFH9HQ Key = LOCALAPPDATA, Value = C:\Users\Nikhil\AppData\Local Key = PROCESSOR_LEVEL, Value = 6 Key = USERDOMAIN, Value = DESKTOP-2CFH9HQ Key = FPS_BROWSER_APP_PROFILE_STRING, Value = Internet Explorer Key = LOGONSERVER, Value = \\DESKTOP-2CFH9HQ Key = PROMPT, Value = $P$G Key = SESSIONNAME, Value = Console Key = ALLUSERSPROFILE, Value = C:\ProgramData Key = =K:, Value = K:\ Key = PROCESSOR_ARCHITECTURE, Value = AMD64 Key = PSModulePath, Value = C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ Key = SystemDrive, Value = C: Key = =ExitCode, Value = 00000000 Key = OneDrive, Value = C:\Users\Nikhil\OneDrive Key = APPDATA, Value = C:\Users\Nikhil\AppData\Roaming Key = USERNAME, Value = Nikhil Key = ProgramFiles(x86), Value = C:\Program Files (x86) Key = CommonProgramFiles, Value = C:\Program Files\Common Files Key = Path, Value = C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Java\jdk-11.0.13\bin Key = FPS_BROWSER_USER_PROFILE_STRING, Value = Default Key = PATHEXT, Value = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC Key = OS, Value = Windows_NT Key = COMPUTERNAME, Value = DESKTOP-2CFH9HQ Key = PROCESSOR_REVISION, Value = 8e09 Key = CommonProgramW6432, Value = C:\Program Files\Common Files Key = ComSpec, Value = C:\Windows\system32\cmd.exe Key = ProgramData, Value = C:\ProgramData Key = ProgramW6432, Value = C:\Program Files Key = HOMEPATH, Value = \Users\Nikhil Key = SystemRoot, Value = C:\Windows Key = TEMP, Value = C:\Users\Nikhil\AppData\Local\Temp Key = HOMEDRIVE, Value = C: Key = PROCESSOR_IDENTIFIER, Value = Intel64 Family 6 Model 142 Stepping 9, GenuineIntel Key = USERPROFILE, Value = C:\Users\Nikhil Key = TMP, Value = C:\Users\Nikhil\AppData\Local\Temp Key = CommonProgramFiles(x86), Value = C:\Program Files (x86)\Common Files Key = ProgramFiles, Value = C:\Program Files Key = PUBLIC, Value = C:\Users\Public Key = NUMBER_OF_PROCESSORS, Value = 4 Key = windir, Value = C:\Windows Key = =::, Value = ::\ 注意:以上输出是动态的。这是因为输出会根据用户使用的系统而有所不同。4. boolean redirectErrorStream(): 该方法返回一个布尔值,表示进程生成器是否合并了标准输出和标准错误。如果redirectErrorStream()方法返回true,那么由start()方法启动的后续子进程产生的任何错误输出都将与标准输出合并,以便两者都可以通过Process.getInputStream()方法读取。此方法可以简化错误消息与相应输出的关联。请注意,redirectErrorStream属性的初始值为false。 语法: public boolean redirectErrorStream() 返回值: 布尔值。 异常: NA。 文件名: ProcessBuilderDemo3.java 输出 false 5. ProcessBuilder redirectErrorStream(boolean redirectErrorStream): 该方法设置进程生成器的redirectErrorStream属性。如果redirectErrorStream属性为true,那么由start()方法启动的后续子进程产生的任何错误输出都将与标准输出合并。初始值为false。 语法: public boolean redirectErrorStream(boolean redirectErrorStream) 返回值: 布尔值。 异常: NA。 文件名: ProcessBuilderDemo4.java 输出 true 6. Process start(): 该方法利用进程生成器的属性启动一个新进程。新进程将在directory()提供的当前工作目录中,使用environment()提供的进程环境,执行command()提供的参数和命令。该方法会检查命令是否与操作系统兼容。 语法: public Process start(). 返回值: 一个新的Process对象,用于管理子进程。 Exception
文件名: ProcessBuilderDemo5.java 输出 Volume in drive C has no label. Volume Serial Number is E44F-AA1A Directory of C:\Users\Nikhil\Downloads\March Month Content 04/02/2022 12:53 PM <DIR> . 04/02/2022 12:53 PM <DIR> .. 03/07/2022 02:16 AM 72,341 Arithmetic Exception in Java.docx 04/01/2022 07:50 PM 75,092 Balanced Prime in Java.docx 03/04/2022 12:06 AM 72,984 Comparetoignorecase Java.docx 03/07/2022 02:16 AM 67,015 Difference between ArrayList and LinkedList.docx 03/18/2022 10:29 PM 88,850 Display the nodes at odd levels of a tree.docx 04/01/2022 06:49 PM 68,855 Empty Statement in Java.docx 03/07/2022 02:13 AM 75,014 Iccanobif Numbers in Java.docx 03/22/2022 05:43 PM 82,319 Java HashSet.docx 03/29/2022 06:43 PM 77,242 Java LinkedHashSet class.docx 03/26/2022 05:06 AM 87,274 Maximum Rectangular Area in a Histogram.docx 04/01/2022 06:59 PM 75,088 Minimum Coins for Making a Given Value in Java.docx 03/07/2022 02:27 AM 77,622 Minimum Xor Value Pair in Java.docx 03/18/2022 10:24 PM 70,371 Nude Numbers in Java.docx 03/03/2022 01:21 AM 69,562 Trimorphic Numbers in Java.docx 03/28/2022 06:23 PM 86,764 Two Sorted LinkedList Intersection in Java.docx 15 File(s) 1,146,393 bytes 2 Dir(s) 13,788,762,112 bytes free 6. ProcessBuilder inheritIO(): 为子进程的标准I/O设置与当前Java进程相同的目的地和源。 语法: public ProcessBuilder inheritIO(). 返回值: 进程生成器。 异常: NA。 文件名: myBat.bat 文件名: ProcessBuilderDemo6.java 输出 "Welcome To JavaTpoint. A great site to Learn Java. 下一主题如何清除Java缓存 |
计算一个数字的倒数幂提供了一种迷人的算术和数值探索的融合。这个有趣的挑战激发了人们对数字及其倒数之间相互作用的好奇心,突出了数学模式和关系的优美。问题陈述:给出了一个数字 P...
阅读 4 分钟
Java 是一种通用且广泛使用的编程语言,以其健壮性和灵活性而闻名。软件开发中的一项常见任务是在不同格式之间转换数据,例如 Java Map 和 JSON(JavaScript Object Notation)。JSON 是一种轻量级且易于人类阅读的数据交换格式...
阅读 4 分钟
Java 是世界上最流行的编程语言之一,它提供了丰富的特性,使开发人员能够编写强大而高效的代码。其中一项功能就是创建复合语句的能力。复合语句,也称为块语句,在...
5 分钟阅读
在 Java 中,String 是一个使用广泛的类,它表示字符序列。Java 中的 String 是不可变的,这意味着一旦创建了 String 对象,它的值就不能被改变。要了解更多 Java String 任何修改都会导致创建新的 String 对象……
阅读 8 分钟
? 在 Java 中,main() 方法在程序执行中起着至关重要的作用。main() 方法是在执行期间首先遇到的方法。因此,它是程序的入口点。我们不能修改 main() 方法的语法。唯一能...
阅读 3 分钟
螺旋式遍历矩阵是指以圆形模式遍历元素,从左上角开始,沿着顶行向右移动。在每次行或列遍历之后,调整边界,并切换方向,持续进行,直到所有元素...
阅读 10 分钟
给定字符串 s,任务是找到可以提取的最大不重叠子字符串数量,同时确保每个选定的子字符串包含其中出现的每个字符的所有出现。以字典顺序返回子字符串列表。示例 1:输入:“abbaccd” 输出:["bb",...
阅读 4 分钟
数组划分问题涉及将数组分成两个子集,使得它们之和的差最小化。这个问题是划分问题的经典示例,在负载均衡、公平分配和优化任务中都有应用。使用递归和记忆化使用动态规划 每个...
阅读 6 分钟
密码系统负责加密用户数据,并提供一种安全机制来将其存储在虚拟驱动器中。虚拟驱动器将在用户首次使用系统时由系统为其创建。系统提供有限的存储空间...
阅读 6 分钟
绳索的最小成本是计算机科学和竞争性编程中的一个经典问题。它基于合并绳索以最小化总成本的概念。想象一下,你有几根不同长度的绳索,需要将它们合并成一根...
阅读 8 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India