Intellij idea 无法在IntelliJ IDEA中打开调试器端口

Intellij idea 无法在IntelliJ IDEA中打开调试器端口,intellij-idea,debug-mode,Intellij Idea,Debug Mode,我有一个问题,我不能用IntelliJ IDE在调试模式下设置我的应用程序,但运行模式可以 我的操作系统是Windows7,IDE是IntellijIDEA,web容器是Tomcat6。我尝试了很长一段时间,更改了HTTP端口和JMX端口,但没有成功 当我使用IntelliJ在调试模式下设置应用程序时,它失败,事件日志为: 16:05:35运行tomcat时出错:无法打开调试器端口: java.net.BindException“地址已在使用:JVM\u Bind” 偶尔,当我重新启动电脑时,一

我有一个问题,我不能用IntelliJ IDE在调试模式下设置我的应用程序,但运行模式可以

我的操作系统是Windows7,IDE是IntellijIDEA,web容器是Tomcat6。我尝试了很长一段时间,更改了HTTP端口和JMX端口,但没有成功

当我使用IntelliJ在调试模式下设置应用程序时,它失败,事件日志为:

16:05:35运行tomcat时出错:无法打开调试器端口: java.net.BindException“地址已在使用:JVM\u Bind”


偶尔,当我重新启动电脑时,一切正常。可能是港口冲突

重启计算机工作,因为Java或Tomcat的实例在重启过程中被杀死。您也可以考虑从任务管理器

中杀死特定的进程。
如果context.xml文件中存在问题,也会发生这种情况。在我的例子中,我意外地更改了上下文值

问题的关键在于调试器端口。我也遇到了同样的问题,我杀死了在端口8081(我的http端口)、1099(JMX端口)、tomcat关机端口、每个java.exe上侦听的所有进程,但仍然一无所获

问题是这个调试器端口不同。如果您运行应用程序,它将通过您为Tomcat配置的端口、8080、8081或其他任何端口。但如果您在调试模式下运行它,它将通过另一个端口


如果从IntelliJ编辑Tomcat配置,最后一个选项卡是启动/连接。在这里查看调试模式的配置,您将看到它的端口。我的是50473。我把它改为50472,一切又开始工作了。

我在Windows7和Intellijidea14中也遇到了同样的问题。 我通过按CTRL+ALT+ESc,找到java并杀死它来杀死java进程。 现在重新运行应用程序,它应该会很好。。
您也可以使用命令行或shell(linux)来实现这一点,但我发现这对我自己来说比较容易

我也有同样的问题,因为我的计算机的DNS缺少127.0.0.1 localhost。
当我将127.0.0.1 localhost添加到我的主机文件时,它变为ok

调试时我遇到了这个问题:它与

  • 尝试将Tomcat http端口8082更改为8083(在调试中) IntelliJ和Tomcat->conf->server.xml上的配置)
  • 尝试将JMX端口从1099更改为1009
  • 尝试在调试中的启动/连接中更改调试端口 配置
  • 已终止TaskManager->Process中的所有java进程

  • 这对我来说一直有效(这经常发生在我身上,例如,当我运行集成测试时重新启动tomcat)

    1) 查找端口1099打开的进程

    sudo netstat -anp | grep tcp | grep 1099
    cp6       0      0 :::1099                 :::*                    LISTEN      9857/java
    
    2) 杀了它


    3) 启动Tomcat。

    对于我来说,IntelliJ
    事件日志(右下角)有以下日志:

    Error running EntitmentTooling-Debug: Cannot run program "/path-to/apache-tomcat-8.5.15/bin/catalina.sh" (in directory "path-to/apache-tomcat-8.5.15/bin"): error=13, Permission denied
    
    Error running EntitmentTooling-Debug: Unable to open debugger port (127.0.0.1:58804): java.net.SocketException "Socket closed"
    
    命令

    $ chmod a+x /path-to/apache-tomcat-8.5.15/bin/catalina.sh
    

    要充分更改特权对我有效。

    请尝试chmod a+x/path/to/tomcat/bin/catalina.sh,如果您在intelliJ中运行它,则有多种原因。
    -调试器端口可能有问题--请将其更改为解决(由回答)
    -intellij缓存可能存在一些问题--使缓存无效并重新启动将解决此问题(回答为)
    -任何其他端口都可能有问题,如JMX、AJP——请同时更改这些端口号。

    我想将此添加为注释,但没有足够的rep以上方法在我的情况下都不起作用,即在运行配置中更改端口号、重新启动机器、在IntelliJ中使缓存无效、终止netstat中显示的进程(
    nestat-anob | findstr
    然后
    tskill
    )。唯一有帮助的是通过
    startup.bat
    shutdown.bat
    手动启动和关闭tomcat(您应该在linux和macOS上使用相应的
    .sh
    文件)。

    我通过这种方式解决了这个问题

  • 我试图杀死所有的java.exe进程,但没有用
  • 然后我尝试删除Tomcat服务器
  • 我重新部署了项目并重新启动了项目,它成功了
  • 有关更多信息,请参见以下链接:

    删除Tomcat

    添加一个新的Tomcat

    在我的例子中,Tomcat/conf文件夹的server.xml中有一个问题,我在另一个注释标记下有额外的注释标记。所以我认为,由于server.xml中存在一些问题,它无法启动Tomcat。此外,它还将tomcat文件夹从您的安装目录复制到C:\Users\username.IntelliJIdea2017.2\system\tomcat\tomcat\u service

    我收到了这条确切的消息

    原因是某些IDE(我使用Eclipse和Intellij)未能关闭tomcat服务器。或者在它这么做之前就崩溃了


    解决方案是导航到
    C:\…\apache tomcat xxx\bin
    并运行
    shutdown

    对我来说唯一有效的方法是转到Windows上的任务管理器,通过右键单击->结束任务来结束所有正在运行的Java进程。

    对于同一个任务,有多种解决方案

  • 我们可以关闭IDE(例如IntellJ)
  • 找到t IND00123:bin devbratanand$lsof-i:30303 命令PID用户FD类型设备大小/关闭节点名称 idea 437 devbratanand 56u IPv4 0xb2720e580a7d6483 0t0 TCP 10.17.130.41:55222->vmqp-cms-pan-app1.emea.akqa.local:30303(已建立) IND00123:bin devbratanand$kill-9437

  • 如果您使用的是windows,则可以通过切换到共享内存调试来完全绕过套接字问题


    当应用程序在同一端口号上运行时,会发生这种情况。一种方法是强制终止进程。以管理员身份打开命令提示符。运行命令'taskkill/IM“java.exe”/F'。这在Windows中对我有效。让我知道这是否有效

  • 检查“运行”配置以查看它使用的端口(
    8081
  • 找到所有其他使用该函数的进程
    $ chmod a+x /path-to/apache-tomcat-8.5.15/bin/catalina.sh
    
    netstat -aon | find "1099"
    
    
    taskkill /F /PID $processId
    
    unable to open debugger port (127.0.0.1:debug-port-number) java.net.socketexception interrupted function call accept failed
    
    11:19 PM    Error running 'Tomcat-tp': Address localhost:1098 is already in use
    
    11:19 PM    Error running 'Tomcat-tp': Unable to open debugger port (127.0.0.1:51787): java.net.SocketException "Interrupted function call: accept failed"
    
    Unable to open debugger port (127.0.0.1:50470):
        java.net.SocketException "Interrupted function call: accept failed"
    
    Cannot load C:\...\conf\web.xml: ParseError at [row,col]:[480,29]
                Message: The element type "param-value" must be terminated by the matching end-tag "</param-value>".