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包加載策略,順序未確認,猜想默認是按字母排序
歡迎關注本站公眾號,獲取更多信息