Java中重名类冲突处理机制和Jar包加载顺序
- 同一个ClassLoader实例加载的类不能重复(不一样的class文件,一样的类名也是重复),若是强行用同一个ClassLoader实例加载同一个类,则会报错
attempted duplicate class definition for {your class}
-
java -classpath(-cp)
加载配置jar包(classes)时,会按照书写定义顺序加载class,以后重复加载的class会被忽略,只有第一个生效
- Idea中能够经过在Project Settings -> Modules -> Dependencies中经过上下箭头调整jar加载顺序,其实也就是调整
-classpath(-cp)
后的jar包书写顺序
- Tomcat下的jar包貌似不一样版本加载策略不一样
- spring-boot是自定义的jar包加载策略,顺序未确认,猜想默认是按字母排序
欢迎关注本站公众号,获取更多信息