我有一个问题,我无法使用IntelliJ IDE在调试模式下设置应用程序,但运行模式可以。
我的操作系统是Windows 7,IDE是IntelliJ IDEA,Web容器是Tomcat6。我尝试了很长时间,更改了HTTP端口和JMX端口,但是没有用。
当我使用IntelliJ在调试模式下设置应用程序时,它失败了,事件日志为:
16:05:35运行tomcat时出错:无法打开调试器端口:java.net.BindException“地址已在使用中:JVM_Bind”。
我有一个问题,我无法使用IntelliJ IDE在调试模式下设置应用程序,但运行模式可以。
我的操作系统是Windows 7,IDE是IntelliJ IDEA,Web容器是Tomcat6。我尝试了很长时间,更改了HTTP端口和JMX端口,但是没有用。
当我使用IntelliJ在调试模式下设置应用程序时,它失败了,事件日志为:
16:05:35运行tomcat时出错:无法打开调试器端口:java.net.BindException“地址已在使用中:JVM_Bind”。
Answers:
问题的关键在于调试器端口。我遇到了同样的问题,我杀死了监听端口8081(我的http端口),1099(JMX端口),tomcat shutdown端口,每个java.exe的所有进程,但仍然一无所有。
问题是此调试器端口不同。如果运行该应用程序,它将通过您为Tomcat配置的端口8080、8081或其他任何端口。但是,如果您在“调试”模式下运行它,它将通过另一个端口。
如果您要从IntelliJ编辑Tomcat配置,则最后一个选项卡是Startup / Connection。在这里查看调试模式的配置,然后查看其端口。我的是50473。我将其更改为50472,然后一切又重新开始工作。
对我而言,IntelliJ Event Log
(右下角)具有以下日志:
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
充分改变对我有用的特权。
Event Log
这里的关键,以前的错误是根本原因
使用IntelliJ时遇到了相同的错误。由于我已经启动了IntelliJ的多个实例。启动两个实例时,它正常启动。但是,启动另一个时,它给出了以下错误。
unable to open debugger port (127.0.0.1:debug-port-number) java.net.socketexception interrupted function call accept failed
您基本上可以在两个地方检查与IntelliJ中的调试相关的端口
检查内容:如果IntelliJ抛出以上错误,则表明问题是上面列出的任何端口。要验证此打开的事件日志(在右下角可用)并检查确切的消息。事件日志将显示如下消息
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"
解决方案1: 检查当前不是以可用端口开头的当前intelliJ的JMX端口,并验证是否在IntelliJ实例中未复制JMX端口,或者您的计算机上运行的任何软件均未使用此端口。
解决方案2- 如果未复制JMX,则请验证您的调试端口,检入所有IntelliJ实例并进行更改。
当然,只要使用唯一的JMX和Debug端口,JMX或Debug端口都会出现问题,它将起作用。
希望这会帮助某人。
在调试时,我遇到了这个问题:
我有同样的问题,因为我的计算机的DNS缺少127.0.0.1本地主机。当我在主机文件中添加127.0.0.1 localhost时,一切正常。
就我而言,在Tomcat / conf文件夹的server.xml中存在问题,在另一个注释标签下有多余的注释标签。因此,我认为,由于server.xml中存在一些问题,因此无法启动Tomcat。此外,它将tomcat文件夹从安装目录复制到C:\ Users \ username.IntelliJIdea2017.2 \ system \ tomcat \ Tomcat_service
当您在同一端口号上运行应用程序时,会发生这种情况。一种通过强行终止进程来实现此目的的方法。以管理员身份打开命令提示符。运行命令“ taskkill / IM“ java.exe” / F“。这在Windows中为我工作。让我知道这个是否奏效。
只需重新启动Android Studio,然后再尝试所有操作即可。我现在正面临着同样的情况,并且我通过这种方式解决了它。
快乐的编码:)
对于任何来过类似消息的人:
Unable to open debugger port (127.0.0.1:50470):
java.net.SocketException "Interrupted function call: accept failed"
这可能是由于某些完全独立的因素引起的,即,这不是端口配置。例如,如果您正在运行Tomcat,则可能是您有一个invalid web.xml
。检查事件日志中是否有以前的错误:
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>".