gpt4 book ai didi

java - 在 Java 中通过 GUI 停止正在运行的进程

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:20 24 4
gpt4 key购买 nike

我有一个执行 TestNG 自动化脚本的 GUI 程序。它旨在让用户轻松配置一些设置并启动他们想要的自动化脚本。

我需要添加的一件事是能够立即停止正在运行的 TestNG 进程。就像在 Eclipse 中一样,“终止”按钮将立即停止正在运行的任何内容。

启动 TestNG 测试的代码如下所示:

public class ScriptRunner implements Runnable {

public void runScript() {
Thread testRun = new Thread(this);
testRun.start();
}

@Override
public void run() {
//various other things are configured for this,
//but they're not relevant so I left them out
TestNG tng = new TestNG();

//While this runs, various browser windows are open,
//and it could take several minutes for it all to finish
tng.run();
}
}

根据评论,tng.run() 可能需要几分钟才能完成,它会执行几项操作,打开/关闭浏览器窗口等。

我怎样才能立即终止进程,就像从 IDE 运行应用程序时那样?

编辑:

根据评论,我正在尝试使用 ServiceExecutor 和 shutDownNow() 代码如下所示:

ExecutorService executorService = Executors.newFixedThreadPool(10);

public void runScript() {
executorService.execute(this);
}

//this method gets called when I click the "stop" button
public void stopRun() {
executorService.shutdownNow();
}

@Override
public void run() {
//same stuff as from earlier code
}

最佳答案

使用 ProcessBuilder 或 Runtime 生成子 JVM 进程,当用户请求脚本停止运行时,您将能够终止该进程。

关于java - 在 Java 中通过 GUI 停止正在运行的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33696874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com