要解决的问题:生产环境是内网服务器,只提供跳板机额外网访问权限,通过 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…,如下图
在Remote配置如下,其实就是host和端口而已,其实上面脚本里面的就类似于idea里面的这些。
3、SecureCRT 配置端口转发
我只会用SecureCRT 做端口转发,其他要是有好的工具欢迎建议给大家
首先在 SecureCRT 登录跳板机,比如我的跳板机是120.27.227.13,右键 properties
或者点工具栏的 options->session options
然后点 Port Forwarding
,Add增加一条
编辑
4、以debug模式启动服务器
./start.sh debug
5、idea 点debug,就发现已经连接上了
现在就可以愉快的打断点调你的服务了,即将进入debug模式
微信公众号:志哥 (ID: zhige-me)
期待与你相遇,一同成长前行!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。