我正在尝试在智能J IDEA中远程调试Java测试文件。但是我遇到了以下错误。


运行“测试”时出错:无法打开调试器端口(localhost:8787):
java.io.IOException“握手失败-过早连接
关闭”


我已经看到了编辑命令行参数的解决方案,但是在2019.2(最终版)中不允许这样做。

下面是我的配置。

java - Intelli J IDEA无法打开调试器端口(localhost:8787):java.io.IOException“握手失败-连接过早关闭”-LMLPHP

请帮忙。

最佳答案

在容器中运行的java命令需要具有以下参数,以及已经存在的任何其他参数。

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8787


创建容器的映像后,需要通过在Dockerfile中添加以下行来公开端口8787:

EXPOSE 8787


创建容器时,需要指定端口8787应该通过隧道传输到Docker主机。如果您使用的是docker-compose,则在特定容器部分下添加以下内容:

ports:
  - '8787:8787'


如果使用的是docker create,则参数为--publish=8787:8787

如果所有这些都已正确设置,则调试器现在应该可以连接到localhost:8787了。

07-24 15:30