【问题标题】:What is the purpose of Process class in Java?Java中Process类的目的是什么?
【发布时间】:2010-05-09 17:02:38
【问题描述】:
Runtime objRuntime = Runtime.getRuntime();
String strBackupString = "mysqldump -u " + userName + " -p" + password + " " + dbName;
Process objProcess = objRuntime.exec(strBackupString);

这用于备份数据库。但究竟会发生什么?谁能让我解释一下,RuntimeProcess 类的目的是什么?

这个类是否被用来表现得好像我们在命令提示符下输入命令一样?那么如果我想打开记事本,我应该将什么传递给objRuntime.exec()?一旦我们调用 exec 方法,命令是否会执行?如果是,那么Process 在这里服务的目的是什么?我真的无法理解这两个类。请让我明白。在此先感谢:)

【问题讨论】:

    标签: java runtime.exec


    【解决方案1】:

    如有疑问,请始终咨询 API:

    java.lang.Process

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

    Runtime.exec(String command)

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

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

    相关问题

    API 链接


    notepad.exe 示例

    如前所述,这是依赖于平台的,但这个 sn-p 在我的 Windows 机器上工作;它启动notepad.exe,并尝试从当前工作目录打开test.txt。然后程序等待进程终止,并打印其exit code

    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());
        }
    }
    

    【讨论】:

    • 非常感谢:)。这个论坛很棒,可能是世界上最好的论坛,来自世界各地的不同编程语言的优秀程序员聚集在一起。相反,即使是sun(oracle)的官方论坛也是垃圾。他们能回答的最好的就是看书和上网,这是适合所有问题的标准答案:) 可能是因为即使他们也不知道。
    • @Nitesh:在他们的辩护中,阅读书籍和浏览 Google 是您自己解决问题的有效方法。这些都是值得练习、完善和宣讲的重要技能。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-10-11
      • 1970-01-01
      • 2015-03-18
      • 2015-06-12
      • 2021-04-19
      • 2016-03-05
      • 1970-01-01
      • 2015-11-17
      • 2013-09-23
      相关资源
      最近更新 更多