Java ProcessBuilder start() 方法



描述

Java ProcessBuilder start() 方法使用此进程构建器的属性启动一个新进程。新进程将调用由 command() 给出的命令和参数,在由 directory() 给出的工作目录中,使用由 environment() 给出的进程环境。此方法检查命令是否为有效的操作系统命令。哪些命令有效取决于系统,但至少命令必须是非空且非 null 字符串的列表。

如果存在安全管理器,则其 checkExec 方法将使用此对象的 command 数组的第一个组件作为其参数被调用。这可能会导致抛出 SecurityException。

声明

以下是 java.lang.ProcessBuilder.start() 方法的声明

public Process start()

参数

返回值

此方法返回一个新的 Process 对象,用于管理子进程

异常

  • NullPointerException − 如果命令列表中的元素为 null

  • IndexOutOfBoundsException − 如果命令为空列表(大小为 0)

  • SecurityException − 如果存在安全管理器且其 checkExec 方法不允许创建子进程

  • IOException − 如果发生 I/O 错误

使用 Process Builder 示例启动记事本进程

以下示例演示了 ProcessBuilder start() 方法的使用。在此程序中,我们创建了一个字符串数组,并将 notepad.exe 和 test.txt 添加到其中。使用该列表,我们初始化了一个 ProcessBuilder 实例。现在使用 start() 方法,我们启动了进程。

package com.tutorialspoint;

import java.io.IOException;

public class ProcessBuilderDemo {

   public static void main(String[] args) {

      // create a new list of arguments for our process
      String[] list = {"notepad.exe", "test.txt"};

      // create the process builder
      ProcessBuilder pb = new ProcessBuilder(list);
      try {
         // start the subprocess
         System.out.println("Starting the process..");
         pb.start();
      } catch (IOException ex) {
         ex.printStackTrace();
      }
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Starting the process..

使用 Process Builder 示例启动计算器进程

以下示例演示了 ProcessBuilder start() 方法的使用。在此程序中,我们创建了一个字符串数组,并将 calc.exe 添加到其中。使用该列表,我们初始化了一个 ProcessBuilder 实例。现在使用 start() 方法,我们启动了进程。

package com.tutorialspoint;

import java.io.IOException;

public class ProcessBuilderDemo {

   public static void main(String[] args) {

      // create a new list of arguments for our process
      String[] list = {"calc.exe"};

      // create the process builder
      ProcessBuilder pb = new ProcessBuilder(list);
      try {
         // start the subprocess
         System.out.println("Starting the process..");
         pb.start();
      } catch (IOException ex) {
         ex.printStackTrace();
      }
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Starting the process..

使用 Process Builder 示例启动 Windows 资源管理器进程

以下示例演示了 ProcessBuilder start() 方法的使用。在此程序中,我们创建了一个字符串数组,并将 explorer.exe 添加到其中。使用该列表,我们初始化了一个 ProcessBuilder 实例。现在使用 start() 方法,我们启动了进程。

package com.tutorialspoint;

import java.io.IOException;

public class ProcessBuilderDemo {

   public static void main(String[] args) {

      // create a new list of arguments for our process
      String[] list = {"explorer.exe"};

      // create the process builder
      ProcessBuilder pb = new ProcessBuilder(list);
      try {
         // start the subprocess
         System.out.println("Starting the process..");
         pb.start();
      } catch (IOException ex) {
         ex.printStackTrace();
      }
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Starting the process..
java_lang_processbuilder.htm
广告