gpt4 book ai didi

java - 终止从 Maven 启动的 Java 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:40 25 4
gpt4 key购买 nike

我使用 exec-maven-plugin 来执行 java 应用程序:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>upload-res</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>java</executable>
<arguments>
<argument>${jvmEncoding}</argument>
<argument>${jvmMaxPermSize}</argument>
<argument>-classpath</argument>
<classpath />
<argument>${myClass}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>

应用程序可能会运行几分钟,具体取决于互联网连接。如果我只是终止:

mvn clean install

在启动的应用程序完成之前,它仍然在后台运行。如果maven构建中断,是否可以终止java应用程序?

最佳答案

困难在于 JVM 是在一个单独的进程中启动的,您不能再使用直接在 JVM 内的 Java 代码与它通信。您需要某种进程间通信。有两种方法可以做到这一点:1)让你的应用程序在端口上监听信号,并让它自行终止,或者 2)在某处记录进程的 pid,然后发出操作系统 kill 命令。两者都有点丑陋。

最佳方法取决于应用程序是什么。当我们启动 Jetty 进行调试时,我们使用选项 1。一些应用服务器会自动监听终止信号。

关于java - 终止从 Maven 启动的 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074810/

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