IDEA远程调试(也适用Docker)

2022年9月23日 848点热度 0人点赞 0条评论

添加远程连接配置

Untitled

Untitled

启动远程服务器上的Java项目

在上一个步骤,我们复制了这一串东西

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

这是jvm的启动参数,当我们启动java项目时添加上这串参数,就可以开启远程调试。下面以启动jar包为例:

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 xxx.jar

如果是Docker部署,同理,添加jvm启动参数,并暴露对应的端口,下面是DockerFile的示例:

# 基础镜像使用java
FROM openjdk:8-jdk-alpine
# 暴露端口(5566端口记得暴露,远程调试用的)
EXPOSE 8080 5566
# 将jar包添加到容器中并更名为app.jar
ADD ./target/testdocker-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
ENTRYPOINT ["java","-jar","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5566","app.jar"]

连接并测试

Untitled

可能出现的问题

如果出现连接不上的问题

  1. 先确认服务器上的java工程有正常启动,正常的话,远程调试端口(本文是5566)是有监听的

    可以用lsof命令测试

  2. 确认远程调试端口是否被服务器的防火墙拦截了

    可以本地使用telnet命令测试能否连接上

  3. 如果是Docker部署,还需要确认Docker容器是否有暴露远程调试端口

    docker ps 就可以看到了

王谷雨

一个苟且偷生的java程序员

文章评论