远程debug的意思是启动一个Java进程,启动一个debugger进程,将两者连接起来,利用debugger来debug Java进程。
事实上目前所有的IDE的debug功能都是通过远程debug方式来实现的,它们都利用了一个叫做JDPA(Java Platform Debugger Architecture)的技术。
利用JDPA我们除了能够在IDE开发的时候debug,也能够将IDE attach到一个生产环境上正在运行的Java进程做debug(事实上这两个场景在本质上是一样的)。
下面会用两个例子来说明如何使用Intellij IDEA来debug一个Java进程。
debug一个简单的Java应用
我们做了一个很简单的Java应用,它启动后会每隔2秒打印出一个不断增长的数字。
执行mvn clean package打包
执行java -jar target/debug-simple-app.jar运行
现在我们要用IDEA远程Debug它。我们先ctrl+c把进程停止掉。
1)把项目导入到IDEA里,因为如果没有源码的话我们没有办法打断点
2)按照下面步骤新建一个Remote Run/Debug Configuration:
选择Remote