10
Runtime objRuntime = Runtime.getRuntime();
String strBackupString = "mysqldump -u " + userName + " -p" + password + " " + dbName;
Process objProcess = objRuntime.exec(strBackupString);

这用于数据库的备份。但究竟会发生什么?任何人都可以让我解释一下,目的RuntimeProcess课程是什么?

此类是否用于表现得好像我们是从命令提示符处键入命令一样?那么objRuntime.exec()如果我想打开记事本应该传递什么?一旦我们调用 exec 方法,命令是否会执行?如果是,那么Process这里的目的是什么?我真的无法理解这两个类。请让我明白。提前致谢 :)

4

2 回答 2

20

如有疑问,请始终查阅 API:

java.lang.Process

ProcessBuilder.start()Runtime.exec方法创建一个本地进程并返回一个子类的实例,该实例可Process用于控制进程并获取有关它的信息。该类Process提供了执行来自进程的输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀死)进程的方法。

Runtime.exec(String command)

在单独的进程中执行指定的系统命令。

所以是的,Runtime.exec可以执行您通常在系统命令提示符下键入的命令。这几乎不是一个独立于平台的解决方案,但有时它是需要的。返回的Process对象让您可以控制它、杀死它,而且重要的是,有时还可以重定向它的标准输入/输出/错误流。

相关问题

API 链接


notepad.exe 示例

如前所述,这取决于平台,但此代码段适用于我的 Windows 机器;它启动notepad.exe,并尝试test.txt从当前工作目录打开。然后程序等待进程终止,并打印其退出代码

public class ExecExample {
    public static void main(String[] args) throws Exception {
        Process p = Runtime.getRuntime().exec("notepad.exe test.txt");      
        System.out.println("Waiting for notepad to exit...");
        System.out.println("Exited with code " + p.waitFor());
    }
}
于 2010-05-09T17:05:03.583 回答
1

它是过程的基于对象的表示。类似于 Thread 类,代表一个线程。

于 2010-05-09T17:06:51.487 回答