一)、查看關於-agentlib命令
在終端命令行中輸入"java"就能看到"-agentlib"命令
二)、關於-agentlib的詳細使用說明
根據上邊提示的文字,我們可以輸入以下命令來查看關於-agentlib的詳細使用
java -agentlib:jdwp=help
我們一般會使用到前面列舉的四個選項,transport
的值爲dt_socket
。
- 如果是本地環境,address可以不用加ip地址
運行以下命令,就可以讓jar以遠程調試的形式啓動,會監聽調試器的連接
java -agentlib:jdwp=suspend=y,transport=dt_socket,address=9090,server=y -jar spring_boot_dissect-1.0.jar
三)、IDEA添加遠程調試配置
四)、IDEA遠程調試項目
當我們想要深入研究Spring Boot Loader的源碼時,由於我們無法直接在IDEA通過運行啓動類的main進入到相關類的源代碼中,所以遠程調試的技術就派上用場啦!
/**
* 主啓動類
*
* @author MoCha
* @date 2020/06/11
*/
@SpringBootApplication
public class SpringBootDissectApplication {
public static void main(String[] args) {
System.out.println(SpringBootDissectApplication.class.getClassLoader());
SpringApplication.run(SpringBootDissectApplication.class, args);
}
}
// IDEA直接運行main方法,輸出sun.misc.Launcher$AppClassLoader@18b4aac2
// 遠程調試環境下,輸出org.springframework.boot.loader.LaunchedURLClassLoader@2c9f9fb0