gpt4 book ai didi

java - 为什么 Maven 在测试结束时卡住了?

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:47 25 4
gpt4 key购买 nike

我遇到了一个问题,maven 在测试的最后阶段卡住了。

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.235 sec
Results :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0

但是BUILD SUCCESSFUL消息没有显示。为什么?

最佳答案

我发现我们正在使用

Process proc = new ProcessBuilder("cmd", "/C", "start", "/B", "notepad").start();

启动外部应用程序。该应用程序与 java 进程相关联。在外部应用程序也终止之前,java 进程不会终止。即使有所有这些 cmd/start 魔法,Windows 和 Java 也不会分离进程。在阅读了大量博客和网站后,他们都提出了同样的建议。刷新输出缓冲区,并读入所有 STD ERR 和 STD OUT 流。然而,这并没有奏效。 Java 仍然说:“还有一个应用程序正在运行!”

答案是确保 java 不知道应用程序正在运行。我通过使用做到了这一点

Process proc = new ProcessBuilder("rundll32", "SHELL32.DLL,ShellExec_RunDLL", "notepad").start();

在此方法中,java调用rundll32并使用SHELL32 DLL函数ShellExec_RunDLL来启动应用程序。 Java 没有检测到这个新的“记事本”进程,并且 RunDLL32 几乎立即退出。我还遵循了所有正确的方法来刷新输出并获取 rundll32 的 STD OUT 和 STD ERR。

后台应用程序记事本能够正常运行,maven 按预期完成。

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.935 sec

Results :

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 seconds
[INFO] Finished at: Mon Mar 18 11:28:54 PDT 2013
[INFO] Final Memory: 27M/72M
[INFO] ------------------------------------------------------------------------

关于java - 为什么 Maven 在测试结束时卡住了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15484308/

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