Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java maven jetty在eclipse中未正确关闭_Java_Eclipse - Fatal编程技术网

Java maven jetty在eclipse中未正确关闭

Java 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

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

我要做的是打开Windows任务管理器并手动终止java进程。如何让jetty顺利关闭/终止/结束

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

论点:码头:开战

MAVEN_选项:-Xdebug-Xnoagent -编译器=NONE-Xrunjdwp:transport=dt_socket,地址=8080,服务器=y,挂起=y


设置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.jar

   package 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();  
      }  

  }