新建一個springboot項目
新建一個java class:
@RestController public class TestController { @RequestMapping("/test") public Integer test() { int i = 0; i++; return i; } }
打包:mvn clean package
生成jar包
放到遠程服務器上(也可以在本地cmd命令下調試,host為localhost),以Jar包的方式執行
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8010 -jar demo-0.0.1-SNAPSHOT.jar
其中 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8010 是在IDEA里配置參數時復制過來的。各參數含義如下:
transport 用於在調試程序和 VM 使用的進程之間通訊。 dt_socket 套接字傳輸。 dt_shmem 共享內存傳輸,僅限於 Windows。 server=y/n VM 是否需要作為調試服務器執行。 address=8010 調試服務器的端口號,客戶端用來連接服務器的端口號。 suspend=y/n 是否在調試客戶端建立連接之后啟動 VM 。
當然,也可以在服務器的啟動腳本里通過添加參數的方式執行。
IDEA的配置:
添加一個Remote
然后開始debug,出現下面的信息說明連接成功:
Connected to the target VM, address: '10.193.215.16:8010', transport: 'socket'
訪問網址:
http://10.193.215.16:8080/test
會發現程序阻塞。進入斷點,就可以開始調試了。
如果你想修改默認8080服務端口,比如改成8020,可以在application.properties配置如下:
server.port=8020
然后服務器端啟動腳本要加上-Dserver.port=8020 參數:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8010 -Dserver.port=8020 -jar demo-0.0.1-SNAPSHOT.jar