硬关闭Eclipse后无法启动服务器(tomcat服务器已启动)

时间:2019-06-13 08:46:16

标签: eclipse tomcat jvm

我正在处理链接到Java项目的大型存储库(在Eclipse上运行),有时(通常在进行文本搜索时),Eclipse停止工作。

如果我在那种状态下“硬关闭”它,并且如果我启动了Tomcat,则问题在于它在退出前不会停止tomcat。

当我再次启动Eclipse时,它将显示Tomcat已停止(不是因为当我硬关闭Eclipse时它没有停止tomcat),并且如果我尝试再次启动它,则会出现以下错误:< / p>

Tomcat error

重新启动它的唯一方法是重新启动计算机。.我承认这有点烦人。.

您知道是否有办法在Eclipse中停止我的“虚拟运行” tomcat服务器,还是每次发生时都必须重新启动计算机? (我的计算机没有管理员权限,无法使用任务管理器杀死进程)

非常感谢

1 个答案:

答案 0 :(得分:1)

停止tomcat的标准机制是在关闭端口上发送关闭命令。通常,关闭端口是8005。您可以通过手动发送命令来停止服务器:

  • 在linux上(仅出于完整性考虑):echo "SHUTDOWN" | nc -w 2 127.0.01 8005
  • 在Windows上:
    1. telnet 127.0.0.1 8005
    2. 键入SHUTDOWN

如果您无权访问这些命令,则可以使用Java编写一个简单的应用程序:

   public static void main(String[] args) throws IOException {
        final InetSocketAddress shutdownAddress = new InetSocketAddress(Inet4Address.getLoopbackAddress(), 8005);
        try (Socket socket = new Socket()) {
            socket.connect(shutdownAddress);

            try (OutputStream out = socket.getOutputStream()) {
                out.write("SHUTDOWN".getBytes(StandardCharsets.US_ASCII));
            }
        }
    }

PS:在Linux上,您还可以发送信号SIG_INT:kill -2 <PID>

相关问题