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包加載策略,順序未確認,猜想默認是按字母排序
相關文章
相關標籤/搜索