Java 生产环境 debug

要解决的问题:生产环境是内网服务器,只提供跳板机的外网访问权限,通过 idea 对生产环境进行调试。

1、生产环境启动参数 start.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
JAVA_DEBUG_OPTS=""
if [ "$1" = "debug" ]; then
JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
fi
# JAVA_DEBUG_OPTS 放在Java脚本启动的JVM参数
# 解释: 随着jkd版本的升高,上面的写法变了,但是功能并不影响,待会儿到idea的时候就能看到了。
# -Xrunjdwp是通知JVM使用(java debug wire protocol)来运行调试环境。该参数同时了一系列的调试选项:
# transport指定了调试数据的传送方式
# dt_socket 是指用SOCKET模式
# address 端口
# server=y/n VM 是否需要作为调试服务器执行。
# suspend=y/n 是否在调试客户端建立连接之后启动 VM 。

2、idea 配置调试端口

打开 idea 当前工程,Edit configurations…,如下图

在Remote配置如下,其实就是host和端口而已,其实上面脚本里面的就类似于idea里面的这些。

3、SecureCRT 配置端口转发

我只会用SecureCRT 做端口转发,其他要是有好的工具欢迎建议给大家

首先在 SecureCRT 登录跳板机,比如我的跳板机是120.27.227.13,右键 properties 或者点工具栏的 options->session options

然后点 Port Forwarding,Add增加一条

编辑

4、以debug模式启动服务器

1
./start.sh debug

5、idea 点debug,就发现已经连接上了

现在就可以愉快的打断点调你的服务了,即将进入debug模式