Java maven jetty在eclipse中未正确关闭
我目前正在从eclipse运行jetty作为一个外部java程序。问题是,当我终止jetty并再次尝试重新启动它时,由于该端口仍在使用中,它无法启动 我要做的是打开Windows任务管理器并手动终止java进程。如何让jetty顺利关闭/终止/结束 以下是我的maven jetty应用程序设置 论点:码头:开战 MAVEN_选项:-Xdebug-Xnoagent -编译器=NONE-Xrunjdwp:transport=dt_socket,地址=8080,服务器=y,挂起=yJava maven jetty在eclipse中未正确关闭,java,eclipse,Java,Eclipse,我目前正在从eclipse运行jetty作为一个外部java程序。问题是,当我终止jetty并再次尝试重新启动它时,由于该端口仍在使用中,它无法启动 我要做的是打开Windows任务管理器并手动终止java进程。如何让jetty顺利关闭/终止/结束 以下是我的maven jetty应用程序设置 论点:码头:开战 MAVEN_选项:-Xdebug-Xnoagent -编译器=NONE-Xrunjdwp:transport=dt_socket,地址=8080,服务器=y,挂起=y 设置suspend
设置suspend=n似乎也不能解决问题。您可以通过“run Jetty run”Eclipse插件而不是Maven Jetty插件运行应用程序。Eclipse可以更直接地控制新的JVM。我不熟悉maven插件,但是当使用start.jar启动jetty时,您可以使用stop.jar让它优雅地关闭(从版本4.something开始)
如果java应用程序没有关闭,那是因为有一个活动的非守护进程线程。尝试获取正在运行的maven进程的线程转储,例如,使用并查看是什么使应用程序保持活动状态。似乎我忘了勾选“允许终止远程VM”。奇怪的是,它以前似乎不起作用 Stopping Jetty
Programs started with the start.jar mechanism may be stopped with the stop.jar:
java -jar stop.jarpackage mypackage; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; public class Stop { public static final int PORT = 8079; //Change to whatever your port is, 8079 is default public static void main(String[] args) throws Exception { Socket s = new Socket(InetAddress.getByName("127.0.0.1"), PORT); OutputStream out = s.getOutputStream(); System.out.println("*** sending jetty stop request"); out.write(("\r\n").getBytes()); out.flush(); s.close(); } }