gpt4 book ai didi

java - Java进程的关闭 Hook 不会在gradle守护进程中触发

转载 作者:行者123 更新时间:2023-11-30 07:09:49 27 4
gpt4 key购买 nike

我有一个套接字服务器应用程序。当进程停止时,此应用程序关闭服务器并从标准 Java 关闭 Hook 内部的端口解除绑定(bind):

Runtime.getRuntime().addShutdownHook(new ShutdownHook());

我使用应用程序 gradle 插件从命令行运行它:

apply plugin: 'application'
mainClassName = "com.ServerLauncher"

但是当我从 gradle 运行应用程序时:

./gradlew :server:run

然后使用 ctrl+z 关闭应用程序,我的关闭钩子(Hook)没有触发。

我猜这是因为 gradle 启动了它自己的进程,它启动了 java 进程,但看起来 java 进程没有收到关闭信号。

最佳答案

我找到了解决方案,为了防止这种行为,我需要说 gradle 不要运行它的守护线程传递这个命令行参数

./gradlew :server:run --no-daemon

关于java - Java进程的关闭 Hook 不会在gradle守护进程中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22671927/

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