Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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.net.BindException:已在使用的地址:JVM“u Bind”;错误?_Java_Eclipse_Networking_Serversocket - Fatal编程技术网

我如何解决这个问题;java.net.BindException:已在使用的地址:JVM“u Bind”;错误?

我如何解决这个问题;java.net.BindException:已在使用的地址:JVM“u Bind”;错误?,java,eclipse,networking,serversocket,Java,Eclipse,Networking,Serversocket,在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 [j

在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

我不知道它为什么会出现在现在,但就在几个小时前它运行良好。我需要重新启动我的机器吗?我该怎么查清楚呢?非常感谢您提供的提示或建议。

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


您可以尝试终止在任务管理器中运行的一个java.exe服务,请确保您不终止eclipse,因为它也被列为java.exe。如果没有别的办法,重新启动你的机器无论如何都能解决它。看起来您没有关闭以前测试中的套接字。希望这有帮助。

如果您知道进程正在运行的端口,可以键入:
lsof-i:

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


然后用kill杀死进程。
kill

该端口已经被其他进程使用,正如@Diego Pino所说,您可以在unix上使用lsof来定位进程并杀死相应的进程,如果您在windows上,请使用netstat-ano获取进程的所有PID和每个人都获得的端口。搜索您想要的端口并杀死


要非常简单,只需重新启动计算机,如果可能的话:)

是的,您有另一个进程绑定到同一端口

(仅限Windows)from是我遇到JVM_绑定错误时最喜欢的应用程序。它显示哪些进程正在哪个端口上侦听。它还提供了一个方便的上下文菜单,可以终止进程,也可以关闭阻碍进程的连接

在Mac中:

压井过程 终端:
kill

查找pid: 终端:
lsof-i:

从windows中的迭戈皮诺回答

netstat -ano
将列出所有侦听的协议、端口和进程。 使用

终止侦听端口的进程。 e、 g


在Windows CMD行中,输入以下命令,找出在绑定端口上保持连接的进程ID:

C:>netstat-a-o

-a显示所有连接

-o显示进程标识符


然后终止进程。

Ubuntu/Unix中,我们可以通过如下所述的两个步骤解决此问题

  • 键入
    netstat-plten | grep java

    这将产生类似于以下内容的输出:

    tcp   0   0 0.0.0.0:8080   0.0.0.0:*  LISTEN   1001  76084  9488/java       
    
    这里,
    8080
    是java进程正在侦听的端口号,
    9488
    是它的进程id(pid)

  • 为了释放被占用的端口,我们必须使用
    kill
    命令终止这个进程

    kill -9 9488
    
    9488
    是以前版本中的进程id。我们使用
    -9
    强制停止进程


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

    在Eclipse中,当我先启动服务器程序,然后启动客户端程序时,打开了两个控制台,我遇到了类似的问题。我曾经在单一控制台中停止程序,认为它关闭了服务器,但它只关闭了客户端,而没有关闭服务器。我发现在我的任务管理器中运行Java进程。通过关闭服务器和客户端程序各自的控制台(Eclipse显示了最新活动程序的控制台),解决了这个问题。因此,当我再次启动服务器程序时,端口再次打开以便捕获。

    您的端口在其他进程中一定很忙。因此,您可以在上下载TCPView并终止已使用端口的进程

    如果您不知道自己的端口,请双击未启动的服务器,然后单击“打开服务器属性”页面,然后从左栏单击glassfish。您将在此处找到端口。

    (1)检查端口是否正在使用,终止该进程

    $lsof-i:[端口]

    (2) 另一个原因是ipv6使用该端口,解决方案:

    编辑/etc/sysctl.conf

    将此添加到文件中

    net.ipv6.conf.all.disable_ipv6=1

    然后让它生效

    $sudo sysctl-p/etc/sysctl.conf


    或者只需重新启动

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

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


    是的,正如Guido Simone所说的,因为另一个进程正在监听同一个端口。如果你在Ubuntu中,你可以通过发出命令简单地杀死这个进程
    sudo kill$(sudo lsof-t-i:[端口号])

    例如:
    sudo kill$(sudo lsof-t-i:8080)

    但有一次,它对我不起作用。 我下达了命令

    $ lsof -i:[port] 
    
    它什么也看不出来

    我使用命令检查了我的docker容器
    docker ps-a
    但其中没有一个处于活动状态。所有容器都已停止 (但我记得,几分钟前我停止了一个使用相同端口的容器。)为了确保docker不是原因,我使用命令
    sudo service docker stop
    停止整个docker进程,然后重试。 令人惊讶的是,eclipse当时没有显示错误。它完美地运行了我的程序


    希望我的经验能对某些人有所帮助。

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

    将应用程序配置为使用任何其他免费和可用的端口
    kill -9 9488
    
    $ lsof -i:[port] 
    
    netstat -ano | findstr :yourPortNumber
    
    taskkill /pid yourid /f
    
    fuser -k 8080/tcp
    
    $ sudo service tomcat stop
    
    TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       18856
    
    sudo kill -9 $(sudo lsof -t -i:8080)
    
    taskkill /F /IM java.exe