任何人都可以告诉我如何删除/处理“java.net.BindException:地址已在使用”

时间:2013-09-12 13:39:12

标签: java hibernate sockets serversocket

java.net.BindException: Address already in use

    at sun.nio.ch.Net.bind0(Native Method)

    at sun.nio.ch.Net.bind(Net.java:174)

    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:139)

    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:77)

    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:70)

    at org.restlet.engine.connector.ServerConnectionHelper.createServerSocketChannel(ServerConnectionHelper.java:158)

    at org.restlet.engine.connector.ServerConnectionHelper.start(ServerConnectionHelper.java:320)

    at org.restlet.Server.start(Server.java:590)

    at org.restlet.Component.startServers(Component.java:611)

    at org.restlet.Component.start(Component.java:538)

    at ucsRestService.service.UCSRestService.main(Unknown Source)

4 个答案:

答案 0 :(得分:1)

简而言之,您正尝试使用相同的主机和端口创建多个服务器。

答案 1 :(得分:1)

有一些服务/服务器在指定端口上侦听。您必须更改要尝试启动的服务器/服务端口,或禁用占用该端口的服务/服务器。

答案 2 :(得分:1)

一台机器一次只能有一个具有特定端口号的侦听器。对于多个侦听器,请尝试不同的端口号。

答案 3 :(得分:0)

我有时会遇到这个错误,当时我正在使用 - 尤其是。测试 - 套接字应用程序。

如果你创建了一个套接字,那么之后你必须 close() 。如果不这样做,下次尝试在同一端口上创建套接字时,则不能,因为它已被占用。

尝试使用其他端口并记住始终关闭;)如果您不想在其他端口上创建套接字,我猜您必须重新启动计算机(或者只是重新启动网卡)。


如果无法直接调用close(),因为套接字被框架隐藏,您应该正确终止该框架。然后它将设法关闭它的所有资源(至少如果它是一个合理的框架)。