Java 生产环境 debug

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

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

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…,如下图

Java 生产环境 debug_第1张图片

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

Java 生产环境 debug_第2张图片

3、SecureCRT 配置端口转发

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

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

Java 生产环境 debug_第3张图片

然后点 Port Forwarding,Add增加一条

Java 生产环境 debug_第4张图片

编辑

Java 生产环境 debug_第5张图片

4、以debug模式启动服务器

./start.sh debug

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

Java 生产环境 debug_第6张图片

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

微信公众号:志哥 (ID: zhige-me)
期待与你相遇,一同成长前行!

你可能感兴趣的:(linux,端口转发,生产环境,debug,java)