实现步骤 以jdk1.8为例

步骤 1 打开线上环境

IDEA 轻松实现线上debug 调试_jar文件

脚本启动 start.sh 这个脚本作用,其实重启启动杀死服务并且重启

#!/bin/bash

echo "************ >>>>>>>>>>>>>Running<<<<<<<<<<<<<< **************"

#得到对应服务的进程号 关闭tomcat
str=`ps -ef | grep 运行jar文件全名.jar | grep -v "grep"|awk '{print $2}'`
kill -9 $str
if [ "$?" -eq 0 ]; then
    echo "killed pid is "$str
    echo "Kill Personloger Manager System Cloud process success"
else
    echo "Kill Personloger Manager System Cloud process fail"
fi

nowDate=`date +"%Y-%m-%d"`

# 执行挂起命令
nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar 运行jar文件全名.jar &


#休眠5秒自动删除nohup.out文件
sleep 5
rm -rf ./nohup.out
nowstr=`ps -ef | grep  运行jar文件全名.jar  | grep -v "grep"|awk '{print $2}'`
#打印出现在新的进程号
echo "now pid is "$nowstr
echo "************ >>>>>>>>>>>>>Success<<<<<<<<<<<<<< **************"

实际上你只要关注这一行命令即可

nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar 运行jar文件全名.jar &
  • nohup 是挂在的意思,就是window环境下的后台运行,在Linux中尾部必须跟&符号
  • address 就是开设的socket端口,实际上本地IDEA连接线上的端口,切记线上服务器一般都带服务组或者防火墙,要记得把端口打开,这里端口可以随便你自己写
  • java -jar 这是Java的运行运行指令

然后启动你的jar服务

步骤 2 IDEA增加debug连接

打开本地服务

IDEA 轻松实现线上debug 调试_java_02

创建远程连接

IDEA 轻松实现线上debug 调试_jar文件_03

配置debug

IDEA 轻松实现线上debug 调试_jar文件_04

开启debug

IDEA 轻松实现线上debug 调试_java_05

连接成功

IDEA 轻松实现线上debug 调试_jar_06