嵌入式Jetty在应用程序退出后继续运行

嵌入式Jetty在应用程序退出后继续运行,jetty,embedded-jetty,Jetty,Embedded Jetty,我的应用程序中嵌入了Jetty 9服务器,发现当我在eclipse中启动程序,然后通过eclipse红色按钮停止它时,Jetty仍在后台运行 我必须做一个netstat来找到哪个进程拥有这个端口,然后做一个taskkill 现在,我是否将jetty配置为在主机应用程序死亡时死亡?应该告诉服务器实例停止 server.stop(); Jetty不知道任何主机应用程序,它运行在自己的守护进程线程上 您还可以使用java.lang.System.exit(int)关闭JVM及其运行的所有线程 杀死J

我的应用程序中嵌入了Jetty 9服务器,发现当我在eclipse中启动程序,然后通过eclipse红色按钮停止它时,Jetty仍在后台运行

我必须做一个netstat来找到哪个进程拥有这个端口,然后做一个taskkill


现在,我是否将jetty配置为在主机应用程序死亡时死亡?

应该告诉
服务器实例停止

server.stop();
Jetty不知道任何主机应用程序,它运行在自己的守护进程线程上

您还可以使用
java.lang.System.exit(int)
关闭JVM及其运行的所有线程

杀死JVM(通过Eclipse红色按钮)也应该杀死该JVM上的所有线程。如果没有,那么您已经在Eclipse中发现了一个bug

但是在开始之前,您应该知道EclipseIDE本身已经运行了自己的EclipseJetty服务器(用于内部的许多事情,也用于提供文档/帮助页面)


因此,您看到一个Eclipse Jetty实例正在运行这一事实是有误导性的,它可能是Eclipse IDE本身出于自身原因正在运行的实例。

不幸的是,在调试器中停止我的应用程序并没有给它一个机会进行任何类型的干净关闭。我希望还有一种方法可以让Jetty与托管它的应用程序在同一个jvm中运行。它很可能在同一个jvm中运行,但在它自己的守护进程线程中。仅仅从
publicstaticvoidmain(字符串args[])
返回不足以停止任何其他线程。