当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Java.lang.Runtime.exec()用法及代码示例



描述

这个java.lang.Runtime.exec(String[] cmdarray, String[] envp, File dir)方法在具有指定环境和工作目录的单独进程中执行指定的命令和参数。给定一个字符串数组 cmdarray(代表命令行的标记)和一个字符串数组 envp(代表 "environment" 变量设置),此方法创建一个新进程来执行指定的命令。

启动操作系统进程高度为 system-dependent。可能出错的许多事情包括 -

  • 找不到操作系统程序文件。
  • 对程序文件的访问被拒绝。
  • 工作目录不存在。

在这种情况下,将抛出异常。异常的确切性质是 system-dependent,但它始终是 IOException 的子类。

声明

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

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

参数

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

  • envp- 字符串数组,其中每个元素都具有格式名称=值的环境变量设置,如果子进程应该继承当前进程的环境,则为null。

  • dir- 子进程的工作目录,如果子进程应该继承当前进程的工作目录,则为null。

返回值

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

异常

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

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

  • NullPointerException− 如果命令为空

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

示例

此示例需要一个名为的文件test.txt在我们的 C:/文件夹中包含以下内容 -

Hello

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

package com.tutorialspoint;

import java.io.File;

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] = "test.txt";

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

      // create a file which contains the directory of the file needed
      File dir = new File("c:/");

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

      // print another message
      System.out.println("test.txt should now open.");

      } catch (Exception ex) {
         ex.printStackTrace();
      }
   }
}

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

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

相关用法


注:本文由纯净天空筛选整理自 Java.lang.Runtime.exec() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。