![](/img/trans.png)
[英]Remote execution / debugging of Java code from Eclipse (or IntelliJ IDEA)
[英]Remote debugging Java 9 in a docker container from IntelliJ IDEA
我有一个包含这个内容的Dockerfile:
FROM openjdk:9
WORKDIR /project
ADD . /project
EXPOSE 5005
我的docker-compose.yml看起来像这样:
version: "3.2"
services:
some-project:
build: .
ports:
- target: 5005
published: 5005
protocol: tcp
mode: host
command: "java '-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005' SomeClass"
当我做docker-composer时,我看到一条消息“ 在地址:5005处收听传输dt_socket ”。 但是当我尝试连接jdb或Idea时,我得到“ java.io.IOException:handshake failed-connection prematurally closed ”。
如果我将openjdk:9更改为openjdk:8,一切正常。 但是,我的项目需要Java 9。
从Java 9开始,JDWP套接字连接器默认只接受本地连接。 请参阅: http : //www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
因此,要从外部启用调试连接,请将*:<port>
指定为地址:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.