intellij 直接debug线上的java应用

1.加入

 java -Xdebug -Xrunjdwp:transport=dt_socket,address=9527,server=y,suspend=y -jar lib/HelloAntWorld.jar

  关于这个exec.sh文件,≈Windows上的batch文件。第一个应该是注释,第二行的echo即回显命令,可以打印一行话。第三行是重点,我们知道如果仅仅是执行这个HelloAntWorld.jar,可以写成:java -jar lib/HelloAntWorld.jar

  而中间这些参数正是为了Remote debug而设:

  -XDebug启用调试

  -Xrunjdwp加载JDWP的JPDA参考执行实例。

  transport 用于在调试程序和 VM 使用的进程之间通讯。

  dt_socket套接字传输。

  server=y/nVM 是否需要作为调试服务器执行。

  address=9527调试服务器监听的端口号。

  suspend=y/n是否在调试客户端建立连接之后启动 VM 。

  关于suspend多说一句,如果设置为y,它会阻塞程序运行,直到有客户端连接到对应的监听端口(这里是9527),程序才真正开始执行。我们有时候会抱怨程序一闪而过,还没来得及在本地加载上代码程序就执行完了,这种情况就可以使用suspend参数。

  还有一个细节是-jar参数不能写到-Xdebug参数前,像这样无法启用调试:

  java -jar lib/HelloAntWorld.jar -Xdebug -Xrunjdwp:transport=dt_socket,address=9527,server=y,suspend=y

 

二.设置intelli


intellij 直接debug线上的java应用_第1张图片

 

debug内容

 


intellij 直接debug线上的java应用_第2张图片
 


 

 

 

 

 

 

你可能感兴趣的:(debug,intellij)