【问题标题】:How would I use an array to store process started in a runtime, then mass destroy() them in a for-loop?我将如何使用数组来存储在运行时启动的进程,然后在 for 循环中批量销毁()它们?
【发布时间】:2013-07-01 18:58:34
【问题描述】:

例如:

Runtime rt = Runtime.getRuntime(); 创建Runtime rt

Process p1 = rt.exec("C:/Windows/System32/calc.exe");Runtime rt 上创建Process p1

然后p1.destroy(); 将销毁Process p1

我的问题是:如果我有多个Process(例如p1p2p3),我如何同时destroy() 它们全部,而不是必须销毁它们一个一个?

对于一个列表,我将如何在我的代码中实现一个列表?我还没有使用过列表和数组,虽然我已经尝试过学习如何使用它们,但我想这是通过示例进行教学更容易的事情之一......

如果你能帮助我,我很乐意提供 PasteBin 链接来展示我正在尝试做的事情。

另外,for-loopdestroy() 的进程已向我提及,但我将如何处理 Process

有人知道怎么做吗?

【问题讨论】:

    标签: java for-loop arraylist runtime destroy


    【解决方案1】:

    你可以这样做:

    Runtime rt = Runtime.getRuntime();
    List<Process> processes = new ArrayList<Process>();
    for (int i = 0; i < nProcesses; ++i) {
        Process p = rt.exec(. . .);
        processes.add(p);
    }
    // then later...
    for (Process p : processes) {
        p.destroy();
    }
    

    最后一个循环称为enhanced for loop。它或多或少相当于:

    for (int i = 0; i < processes.size(); ++i) {
        Process p = processes.get(i);
        p.destroy();
    }
    

    【讨论】:

    • 它告诉我“类型列表不带参数”。我该怎么办?
    • @TeddHopp 如果我粘贴代码,你能解释一下吗?
    • @TeddHopp 这个:List&lt;Process&gt; processes = new ArrayList&lt;Process&gt;();
    • @user2506658 - 确保您导入了java.util.List(而不是java.awt.List)。
    • @TeddHopp 好的,解决了它。但是现在我如何让流程被执行?
    猜你喜欢
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    相关资源
    最近更新 更多