使用IDEA进行JAVA代码的远程Debug

一、远程服务器端的JAVA代码开启调试模式。

项目类型:Spring Boot项目
JDK版本:jdk1.8.0_221
项目启动脚本:

#!/bin/sh


#===========================================================================================
# Java Environment Setting
#===========================================================================================
error_exit ()
{
    echo "ERROR: $1 !!"
    exit 1
}


[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"


export JAVA_HOME
export JAVA="$JAVA_HOME/bin/java"
export BASE_DIR=$(dirname $0)/..
export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}


#===========================================================================================
# JVM Configuration
#===========================================================================================
JAVA_OPT="${JAVA_OPT} -server -Xms2048m -Xmx2048m"
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"

nohup ${JAVA} -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8094 ${JAVA_OPT} -jar scgo-cloud-api-1.0.0.jar >/dev/null 2>&1 &

debug 配置参数部分为:

 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8094
参数说明:

jdwp:java debug wire protocol
transport=dt_socket:以socket协议进行通信
server=y:开启调试服务端
address=8094:通信端口是8094,即:应用端口

二、IDEA中的参数配置

1、打开远程Debug参数配置窗口

remote_debug_01.png

2、配置Debug参数

Host表示远程服务端的IP地址。
Port表示跟远程服务端进行Debug通信的端口。
Command Line表示启动参数,注明开启远程Debug。
Use module classpath 表示远程服务对应的本地代码路径。


remote_debug_02.png

3、点击Debug图标,开始Debug

remote_debug_03.png
remote_debug_04.png

如图所示,表示远程连接成功。

三、注意事项

1、本地与远程的项目代码一定要一致。
2、当开启远程Debug后,任何能走到断点的操作都会导致业务阻塞到断点位置,从而影响业务流程的正常执行,所以最好选择没什么用户操作的时候进行远程Debug调试。
3、远程Debug调试过程中,结束调试不会导致远程业务流程终止,线上业务会继续执行。

你可能感兴趣的:(使用IDEA进行JAVA代码的远程Debug)