添加远程连接配置
启动远程服务器上的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"]
连接并测试
可能出现的问题
如果出现连接不上的问题
- 先确认服务器上的java工程有正常启动,正常的话,远程调试端口(本文是5566)是有监听的
可以用lsof命令测试
-
确认远程调试端口是否被服务器的防火墙拦截了
可以本地使用telnet命令测试能否连接上
-
如果是Docker部署,还需要确认Docker容器是否有暴露远程调试端口
docker ps 就可以看到了