Java中Process类的目的是什么?

TCM*_*TCM 9 java runtime.exec

Runtime objRuntime = Runtime.getRuntime();
String strBackupString = "mysqldump -u " + userName + " -p" + password + " " + dbName;
Process objProcess = objRuntime.exec(strBackupString);
Run Code Online (Sandbox Code Playgroud)

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

这个类用于表现我们是否从命令提示符输入命令?然后,我应该通过什么objRuntime.exec(),如果我想打开记事本?我们调用exec方法时是否执行命令?如果是,那么Process这里的用途是什么?我真的无法理解这两个类.请让我明白.提前致谢 :)

pol*_*nts 19

如有疑问,请随时咨询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());
    }
}
Run Code Online (Sandbox Code Playgroud)