当前位置: 首页 > 知识库问答 >
问题:

地址已在使用中:JVM_Bind,但没有列出使用端口和netstat的进程

袁何平
2023-03-14

我有一个java进程,它使用ServerSocket API(Java8)并绑定到本地端口12000。进程在Windows服务包装器(exe4j)下运行。我有一个计划任务,在凌晨4点运行,停止服务并在几秒钟后重新启动它。该进程安装在400多个客户位置。

直到上周五,一切都很顺利。一些进程未能在凌晨4点正确重新启动。在我能够连接和验证的2台服务器上,重新启动失败,并显示“地址已在使用中:JVM_Bind”。端口12000似乎仍在被系统使用。

我使用了我知道的所有工具(Process Explorer、tcpview、netstat-ano,等等)来尝试找到进程……没有成功。只有机器重新启动解决了问题。但是一两个晚上后问题又出现了。

经过一些阅读,我看到我正在做一个无限超时的sockect.accept(),所以我将其更改为socket.html" target="_blank">setSoTimeout(15000);socket.accept ();

我安装了新版本,但问题仍然存在。

计算机获得了视窗更新。我使用相同的Windows版本进行了测试,但我无法重现。

我现在没有解决方案了。

有什么想法吗谢谢

共有2个答案

杜河
2023-03-14

我在这里也有同样的问题。我已经有几个Java实例作为服务器运行,但一旦这些Java应用程序中的任何一个被终止并重新启动,它们就会抱怨端口仍在使用。以前从未发生过,我经常不时地重启它们。

我的Windows服务器机器几天前也收到了一些新的更新。

顺便说一句,我正在使用一个工具来监视端口和应用程序,这些端口没有被任何程序使用,因此应用程序实际上被终止了。

乐正峰
2023-03-14

Windows更新影响了进程关闭后地址/端口的释放。

有关解决方案,请参考Tomcat中的地址绑定异常。

 类似资料:
  • 问题内容: 我在Windows XP Pro上使用Glassfish 3.0.1,JVM 1.6.0_21; 我不知道我的环境到底发生了什么变化,但是当我尝试部署企业应用程序(ejb模块+应用程序客户端模块)时,我立即获得了该堆栈跟踪信息。 除Glassfish之外,端口3820上没有任何运行。 这可能是什么原因?一些内部过程冲突? 关于如何进一步调试的任何提示? 编辑 这正是我尝试过的: 如您所

  • 服务器程序: 客户端程序: 当我执行这个程序时。我收到了这样的错误“java.net.BindException:地址已在使用中:JVM_Bind”但在它正常工作之前。有人能帮我解决这个问题吗?

  • 问题内容: 有时,每当我重新启动基于Java Struts Mysql和Jboss 4.05版本构建的应用程序时,都会收到以下错误消息: 地址已在使用中:JVM_Bind 我知道的唯一解决方法是重新启动计算机,然后重试,它将起作用。否则,有时我执行Ctrl-Alt-Del并停止所有与Java相关的过程,有时这也可行。 但是,确切的原因是什么,我们如何预防这个问题呢? 问题答案: 已使用的地址:JV

  • 我已经编写了这两个类,一个用于客户端,另一个用于服务器。当我运行这两个类时,我收到以下错误: 问题是什么?我也使用TCPview软件,只有两个使用同一端口。这两个进程属于应用程序。 代码如下: 服务器代码 客户代码

  • 在java中运行我的客户端后,我得到了这个错误。 运行:

  • 问题内容: 在Eclipse中,出现此错误: 我不知道为什么现在出现,但几个小时前就可以运行了。我需要重启机器吗?我如何深入了解它?我感谢任何提示或建议。 问题答案: 是的,你有另一个绑定到同一端口的进程。 每当我遇到JVM_BIND错误时,Windows Sysinternals的TCPView(仅Windows)都是我最喜欢的应用程序。它显示了哪些进程正在侦听哪个端口。它还提供了一个方便的上下