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包加载策略,顺序未确认,猜想默认是按字母排序
相关文章
相关标签/搜索