标签:ade jar包 back tab loader 父类 ati 一个 程序打包
1.为什么SpringBoot的jar包可以直接运行?
SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。
然后可以直接执行jar包就能启动程序了:java -jar executable-jar-1.0-SNAPSHOT.jar
当我们使用java -jar执行jar包的时候会调用JarLauncher的main方法,而不是我们编写的SpringApplication。
JarLauncher这个类是SpringBoot内部提供的工具Spring Boot Loader提供的一个用于执行Application类的工具类。
LaunchedURLClassLoader重写了loadClass方法,也就是说它修改了默认的类加载方式,不再是直接从父类加载器中去加载。
标签:ade jar包 back tab loader 父类 ati 一个 程序打包
原文地址:https://www.cnblogs.com/wk-missQ1/p/13516940.html