Java.lang.Runtime.exec() 方法

描述

java.lang.Runtime.exec(String[] cmdarray, String[] envp) 方法在具有指定环境的单独进程中执行指定的命令和参数。 这是一种方便的方法。 exec(cmdarray, envp) 形式的调用与调用 exec(cmdarray, envp, null) 的行为方式完全相同。


声明

以下是 java.lang.Runtime.exec() 方法的声明。

public Process exec(String[] cmdarray, String[] envp)

参数

  • cmdarray − 包含要调用的命令及其参数的数组。

  • envp − 字符串数组,每个元素的环境变量设置格式为 name=value,如果子进程应继承当前进程的环境,则为 null。


返回值

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


异常

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

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

  • NullPointerException − 如果命令为空

  • IndexOutOfBoundsException − 如果 cmdarray 是一个空数组(长度为 0)


示例

这个例子需要在我们的 CLASSPATH 中有一个名为 example.txt 的文件,其内容如下 −

Hello World!

下面的例子展示了 lang.Runtime.exec() 方法的使用。

package com.tutorialspoint;

public class RuntimeDemo {

   public static void main(String[] args) {
      try {

         // create a new array of 2 strings
         String[] cmdArray = new String[2];

         // first argument is the program we want to open
         cmdArray[0] = "notepad.exe";

         // second argument is a txt file we want to open with notepad
         cmdArray[1] = "example.txt";

         // print a message
         System.out.println("Executing notepad.exe and opening example.txt");

         // create a process and execute cmdArray and currect environment
         Process process = Runtime.getRuntime().exec(cmdArray,null);

         // print another message
         System.out.println("example.txt should now open.");
      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

让我们编译并运行上面的程序,这将产生下面的结果 −

Executing notepad.exe and opening example.txt
example.txt should now open.