日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java包引入顺序_多个相同jar存在时的引用顺序

發布時間:2023/12/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java包引入顺序_多个相同jar存在时的引用顺序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

起因:今天一個aar包在測試環境中正常運行,使用soapui測試正常返回,在本地環境中運行則老是報數據庫連接異常,經檢查,是因為在運行時環境中缺少ojdbc相關的jar包引起的。

重新打了一個aar包,將ojdbc放入aar中即可正常運行。

這引起了我極大的興趣,為什么同一個aar,測試環境中無需在aar中lib添加ojdbc即可正常運行?

最后在這里找到答案:

Java虛擬機類加載順序?(如評論所言,將文中寫的“system classloader”有點誤導,應該改成“AppClassLoader”,更方便理解,即應用類加載器)

1.檢測此Class是否載入過(即在cache中是否有此Class),如果有到8,如果沒有到2

2.如果parent classloader不存在(沒有parent,那parent一定是bootstrap classloader了),到4

3.請求parent classloader載入,如果成功到8,不成功到5

4.請求jvm從bootstrap classloader中載入,如果成功到8

5.尋找Class文件(從與此classloader相關的類路徑中尋找)。如果找不到則到7.

6.從文件中載入Class,到8.

7.拋出ClassNotFoundException.

8.返回Class.

由ClassLoader的雙親委托模式加載機制我們可以知道,假設兩個包名和類名完全相同的class文件不再同一個jar包,如果一個class文件已經被加載java虛擬機里了,那么后面的相同的class文件就不會被加載了。

于是分別做了以下測試:

oracle.jdbc.driver.OracleDriver od = neworacle.jdbc.driver.OracleDriver();//OracleDriver od = new OracleDriver();

String dbpath = java.net.URLDecoder.decode(od.getClass().getProtectionDomain().getCodeSource().getLocation().toString(),"UTF-8");

CommLogger.printlog("OracleDriver path"+od.getClass().getProtectionDomain().getCodeSource().getLocation());

CommLogger.printlog("dbpath "+dbpath);

得到OracleDriver類的路徑。

1.在tomcat/lib下加入ojdbc.jar。

2.在axis2/WEB-INF/lib下加入ojdbc.jar。

3.在打包的aar中加入ojdbc.jar。

僅條件1,輸出結果如下:

dbpath file:/C:/Program Files/Apache Software Foundation/Tomcat 7.0/lib/ojdbc14.jar

僅條件2,輸出結果如下:

dbpath file:/C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/axis2/WEB-INF/lib/ojdbc14.jar

僅條件3,輸出結果如下:

dbpath file:/C:/Program Files/Apache Software Foundation/Tomcat 7.0/temp/axis2-tmp-8189257264145727421.tmp/axis24403210224279191362ojdbc14.jar

條件1和2,如下

dbpath file:/C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/axis2/WEB-INF/lib/ojdbc14.jar

條件1和3,如下

dbpath file:/C:/Program Files/Apache Software Foundation/Tomcat 7.0/lib/ojdbc14.jar

條件2和3,如下

dbpath file:/C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/axis2/WEB-INF/lib/ojdbc14.jar

條件123添加,如下

dbpath file:/C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps/axis2/WEB-INF/lib/ojdbc14.jar

總結

以上是生活随笔為你收集整理的java包引入顺序_多个相同jar存在时的引用顺序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天做天天摸天天爽天天爱 | 色综合色综合网色综合 | 欧美日韩免费一区二区三区 | 99热这里只有精品首页 | 秋霞在线视频 | 香蕉视频在线观看网站 | 91av福利视频| 亚洲女人的天堂 | 日韩av高清 | 国产不卡高清 | 欧美黑人性生活 | 激情爱爱网站 | 久久久久国产精品视频 | 日本久久久久久 | 麻豆视频在线播放 | 黄色视屏在线免费观看 | 欧美一区二区三区四区五区 | 成人免费超碰 | 欧美黄网站 | 国产精品久久久久久久专区 | 日本精品一区二区三区视频 | 欧美久久一级 | 亚洲社区一区二区 | bt男人天堂 | 精品一区二区三区四 | 四虎永久在线观看 | 一本大道久久a久久精二百 琪琪色在线视频 | 欧美日韩小说 | 欧美精品日韩在线 | 亚洲啪啪 | 爱爱网站视频 | 99视频导航| 国产日韩片 | 日本三级韩国三级美三级91 | 欧美性极品xxxx做受 | 青青色在线 | av在线不卡一区 | 欧美黄在线观看 | 欧美视频一二三区 | 国产人妖网站 | 天堂av在线网 | 亚洲精品乱码久久久久久黑人 | 日皮毛片 | 一级片黑人 | 亚洲一区二区不卡视频 | 91麻豆精品国产91久久久久久久久 | 国产精品久久国产愉拍 | 色黄视频 | 美女黄视频大全 | 殴美一级特黄aaaaaa | 99国产精品国产精品九九 | 日韩av网站在线 | 日本视频在线免费观看 | 影音先锋中文字幕人妻 | 黄色91免费观看 | 福利一区三区 | 蜜桃又黄又粗又爽av免 | 狠狠插狠狠操 | 国产视频久久久久 | 国产成人精品电影 | 久久这里都是精品 | 国产日韩欧美中文字幕 | 国产乱淫av免费 | 聚色屋| 激情五月开心婷婷 | 午夜污污 | gv天堂gv无码男同在线观看 | 毛片官网| 美女福利视频导航 | 河北彩花av在线播放 | 国产床上视频 | 久久久精品免费观看 | 精品电影在线观看 | 亚洲福利| 久久黄色网址 | 三级欧美韩日大片在线看 | 国产黄色大片网站 | 成年人免费在线 | 中文字幕一区二区三区在线不卡 | caoporn成人 | 成人激情在线视频 | 成人免费毛片aaaaaa片 | 国产欧美中文字幕 | 色欲久久久天天天综合网精品 | 深喉口爆一区二区三区 | 精品成人一区二区 | 幸福,触手可及 | 欧洲熟妇的性久久久久久 | 成人免费a级片 | 美女又爽又黄视频毛茸茸 | 伊人免费在线观看高清版 | 天天综合网久久综合网 | 九九热精品免费视频 | julia一区二区中文久久97 | 能看av的网站 | 艳妇臀荡乳欲伦交换在线播放 | 午夜亚洲AV永久无码精品蜜芽 | 午夜精品在线观看 | 日韩激情综合网 |