- 同一个 ClassLoader 实例加载的类不能重复(不同的 class 文件,同样的类名也是重复),如果强行用同一个 ClassLoader 实例加载同一个类,则会报错
attempted duplicate class definition for {your class}
-
java -class
加载配置 jar 包(classes)时,会按照书写定义顺序加载 class,之后重复加载的 class 会被忽略,只有第一个生效 - Idea 中可以通过在 Project Settings -> Modules -> Dependencies 中通过上下箭头调整 jar 加载顺序,其实也就是调整 -classpath 后的 jar 包书写顺序
- Tomcat 下的 jar 包貌似不同版本加载策略不同
- spring-boot 是自定义的 jar 包加载策略,顺序未确认,猜测默认是按字母排序