maven jetty在eclipse中没有正常关闭

时间:2009-05-24 10:16:32

标签: java eclipse

我目前正在从eclipse运行jetty作为外部java程序。问题是当我终止jetty并且我再次尝试重新启动它时,由于端口仍然在使用,它不能。

我要做的是打开Windows任务管理器并手动终止java进程。你如何让码头很好地关闭/终止/结束?

以下是我的maven jetty应用程序设置

  

参数:jetty:run-war

     

MAVEN_OPTS:-Xdebug -Xnoagent   -Djava.compiler = NONE -Xrunjdwp:transport = dt_socket,address = 8080,server = y,suspend = y

设置suspend = n似乎也无法解决问题。

4 个答案:

答案 0 :(得分:1)

如果java应用程序没有关闭,那是因为一个活着的非守护进程线程。尝试获取正在运行的maven进程的线程转储,例如使用VisualVM并查看是什么让应用程序保持活跃状态​​。

答案 1 :(得分:0)

您可以通过“Run Jetty Run”Eclipse插件运行应用程序,而不是Maven jetty插件。 Eclipse可以更直接地控制新的JVM。

答案 2 :(得分:0)

我不熟悉maven插件,但是当使用start.jar启动jetty时,可以使用stop.jar让它正常关闭(从版本4.something开始)。

Stopping Jetty

Programs started with the start.jar mechanism may be stopped with the stop.jar:

   java -jar stop.jar
This connects via a local port to stop the server. The default port can be set with the STOP.PORT system property

Source

或者,也许更多你喜欢的,你可以通过编写这样的类,并运行main方法在eclipse中完成:

   java -jar stop.jar

Source

答案 3 :(得分:0)

似乎我忘记勾选“允许终止远程VM”。奇怪的是它之前似乎没有用。