在Eclipse中,我得到了这个错误:

run:
     [java] Error creating the server socket.
     [java] Oct 04, 2012 5:31:38 PM cascadas.ace.AceFactory bootstrap
     [java] SEVERE: Failed to create world : java.net.BindException: Address already in use: JVM_Bind
     [java] Java Result: -1
BUILD SUCCESSFUL
Total time: 10 seconds

我不知道为什么现在出现了,但几个小时前它运行得很好。我需要重新启动我的机器吗?我该怎么查到底呢?感谢您的建议和建议。


当前回答

这意味着其他进程已经在使用该端口。如果这个端口正在被其他一些重要的应用程序使用,而您不想关闭该应用程序,那么更好的方法是选择任何其他可以自由使用的端口。

将应用程序配置为使用任何其他空闲端口,您将看到应用程序正常工作。

其他回答

在Ubuntu/Unix中,我们可以通过以下两步来解决这个问题。

输入netstat -plten |grep java 这将给出一个类似于: tcp 00 0.0.0.0:8080 0.0.0.0:* LISTEN 1001 76084 9488/java 这里8080是java进程监听的端口号,9488是进程id (pid)。 为了释放被占用的端口,我们必须使用kill命令终止该进程。 杀死-9 9488 9488是之前的进程id。我们使用-9强制停止进程。

您的端口现在应该是空闲的,您可以重新启动服务器。

对于那些正在寻找最简单的答案的人(因为这是我们通常错过的),只需停止您正在运行的项目并重新开始。 大多数情况下,我们所做的是忘记停止我们之前运行的项目,当我们重新运行项目时,它会显示这样的问题。

我还附上了一张照片,让它更清晰(我使用“Spring工具套件”)。 所以你需要做的是点击最右边的按钮,如果你想重新启动同一个项目,或者首先点击右边第二个按钮来停止你的项目,然后点击最左边的按钮来运行你的项目。我希望这将解决少数新程序员的问题。:)

I faced similar issue in Eclipse when two consoles were opened when I started the Server program first and then the Client program. I used to stop the program in the single console thinking that it had closed the server, but it had only closed the client and not the server. I found running Java processes in my Task manager. This problem was solved by closing both Server and Client programs from their individual consoles(Eclipse shows console of latest active program). So when I started the Server program again, the port was again open to be captured.

您在同一端口上运行另一个进程。

你可以尝试杀死一个运行在你的任务管理器中的java.exe服务- ps确保你没有杀死eclipse,因为它也被列为java.exe。如果其他方法都不起作用,重新启动机器无论如何都会修复它。看起来你没有关闭之前测试中的套接字。希望这能有所帮助。

如果你知道进程运行的端口是什么,你可以输入: lsof我:<端口>。

例如,lsof -i:8080列出运行在端口8080上的进程(pid)。

然后使用kill <pid>终止进程