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.