我正在尝试在智能J IDEA中远程调试Java测试文件。但是我遇到了以下错误。
运行“测试”时出错:无法打开调试器端口(localhost:8787):
java.io.IOException“握手失败-过早连接
关闭”
我已经看到了编辑命令行参数的解决方案,但是在2019.2(最终版)中不允许这样做。
下面是我的配置。
请帮忙。
最佳答案
在容器中运行的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了。