don*_*tme 25 java debugging intellij-idea
所以我打算在Intellij Community Edition上调试我的Solr过滤器插件.在我使用此命令从命令提示符运行程序后
java -jar start.jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8983
Run Code Online (Sandbox Code Playgroud)
我用这个配置启动了我的Intellij调试器:
Transport : socket
Debugger mode : attach
Host : localhost
Port : 8983
Run Code Online (Sandbox Code Playgroud)
但是当我运行调试器时出现了这个错误:
Error running Debugger: Unable to open debugger port (localhost:8983):
java.io.IOException "handshake failed - connection prematurally closed"
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?
Laz*_*ass 47
尝试访问 Docker 容器上的调试端口时出现该错误。
如果您尝试访问 Docker 容器内的调试端口,请确保将端口指定为 *:5005
例如
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
自 Java 9 以来,这已经发生了变化。
这不是一个错误。这是一种安全。
JDK-8041435 之前
如果您有一台带有 EXT 和 INT 接口的服务器,并以地址 = 5900 启动 Java 进程,它将绑定到这两个接口,并允许全世界的任何人连接到您的 Java 进程,除非您在防火墙上阻止它。
在 JDK-8041435 套接字传输后尝试猜测 localhost 并仅绑定到 localhost。即默认情况下套接字传输仅在客户端和服务器位于同一台机器上时才有效。猜测正确的本地主机不是一件容易的事。因此,由于网络设置,在某些情况下,同一台机器的配置可能无法正常工作。
您可以使用 * (asteric) 恢复旧的、不安全的行为,即 -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5900 应该像 JDK-8041435 之前一样工作
但建议在可能的情况下明确指定要绑定的 ip 地址。
JDWP 套接字连接器已更改为仅在代理命令行上未指定 ip 地址或主机名时绑定到 localhost。可以使用星号 (*) 主机名来实现旧行为,即将 JDWP 套接字连接器绑定到所有可用接口;这不安全,不推荐。
don*_*tme 13
它应该是这样的,
java "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8983" -jar start.jar
它现在正在运作
| 归档时间: |
|
| 查看次数: |
48342 次 |
| 最近记录: |