激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語言 - Java教程 - Java學(xué)習(xí) | 如何擴展加載Jar包?

Java學(xué)習(xí) | 如何擴展加載Jar包?

2021-06-03 01:47快快網(wǎng)絡(luò) Java教程

當(dāng)使用-jar參數(shù)運行的時候,java VM會屏蔽所有的外部classpath,而只以本身yourJarExe.jar的內(nèi)部class作為類的尋找范圍。

java -jar參數(shù)運行應(yīng)用時classpath的設(shè)置方法 當(dāng)用java -jar yourJarExe.jar來運行一個經(jīng)過打包的應(yīng)用程序的時候,你會發(fā)現(xiàn)如何設(shè)置-classpath參數(shù)應(yīng)用程序都找不到相應(yīng)的第三方類,報ClassNotFound錯誤。實際上這是由于當(dāng)使用-jar參數(shù)運行的時候,java VM會屏蔽所有的外部classpath,而只以本身yourJarExe.jar的內(nèi)部class作為類的尋找范圍。

Java學(xué)習(xí) | 如何擴展加載Jar包?

解決方案

 

擴展性類加載器

擴展性類加載器一般存放在{Java_home}\jre\lib\ext目錄下,當(dāng)調(diào)用Java時,對擴展class路徑的搜索是自動的。總會搜索的.這樣,解決的方案就很簡單了,將所有要使用的第三方的jar包都復(fù)制到ext目錄下。就會透明化進入加載范疇內(nèi)。

注意:不建議使用,否則所有的JRE需要遷移和統(tǒng)一和同步!

BootStrap類加載器擴展方案

采用 -Xbootclasspath參數(shù)進行加載擴展jar包。

Java命令行提供了如何擴展bootStrap級別class的簡單方法。

  • -Xbootclasspath: 完全取代基本核心的Java class搜索路徑,不常用,否則要重新寫所有Java核心class(建議不要用!)。
  • -Xbootclasspath/a: 后綴在核心class搜索路徑后面(推薦使用)
  • -Xbootclasspath/p: 前綴在核心class搜索路徑前面,不常用,避免引起不必要的沖突。(不建議使用)

語法如下: (分隔符與classpath參數(shù)類似,unix使用:號,windows使用;號,這里以unix為例)

  1. java -Xbootclasspath/a:/usrhome/thirdlib.jar: -jar yourJarExe.jar 

User class擴展方案

當(dāng)使用-jar執(zhí)行可執(zhí)行Jar包時,JVM將Jar包所在目錄設(shè)置為codebase目錄,所有的class搜索都在這個目錄下開始。

所以如果使用了其他第三方的jar包,一個比較可以接受的可配置方案,就是利用jar包的Manifest擴展機制。

步驟如下:

  • 將需要的第三方的jar包,復(fù)制在同可執(zhí)行jar所在的目錄或某個子目錄下. 比如:jar 包在 /usrhome/yourJarExe.jar 那么你可以把所有jar包復(fù)制到/usrhome目錄下或/usrhome/lib 等類似的子目錄下.
  • 修改Manifest 文件

在Manifest.mf文件里加入如下行:

  1. Class-Path:classes12.jar lib/thirdlib.jar 

Class-Path 是可執(zhí)行jar包運行依賴的關(guān)鍵詞。

要注意的是Class-Path只是作為你本地機器的CLASSPATH環(huán)境變量的一個縮寫,也就是說用這個前綴表示在你的jar包執(zhí)行機器上所有的CLASSPATH目錄下尋找相應(yīng)的第三方類/類庫。

  • 你并不能通過Class-Path來加載位于你本身的jar包里面(或者網(wǎng)絡(luò)上)的jar文件。
  • 因為從理論上來講,你的jar發(fā)布包不應(yīng)該再去包含其他的第三方類庫(而應(yīng)該通過使用說明來提醒用戶去獲取相應(yīng)的支持類庫)。
  • 如果由于特殊需要必須把其他的第三方類庫(jar, zip, class等)直接打包在你自己的jar包里面一起發(fā)布,你就必須通過實現(xiàn)自定義的ClassLoader來按照自己的意圖加載這些第三方類庫。

原文地址:https://www.toutiao.com/i6968394829437059596/

延伸 · 閱讀

精彩推薦
572
主站蜘蛛池模板: 久久色伦理资源站 | 久久免费视屏 | 成人毛片在线 | 亚洲91网站 | 日韩在线毛片 | 日本不卡二区 | 久久久久9999 | 精品国产99久久久久久宅男i | 海角在线观看91一区二区 | 午夜丰满少妇高清毛片1000部 | 亚洲性生活免费视频 | 污污短视频 | 91九色视频在线播放 | 黄色片网站免费观看 | 永久免费av片在线观看全网站 | 国产小视频一区 | 一二区| 午夜视频免费播放 | 免费久久久久久 | 久久久精品视 | a网站在线 | 久久视频精品 | 91av99| 国产精品区在线12p 午夜视频色 | 成人激情视频网站 | 成人在线影视 | 日本成人一区 | 久久sp | av7777777| 斗罗破苍穹在线观看免费完整观看 | 高清国产午夜精品久久久久久 | www久久久久久 | 色视频在线播放 | 国产亚洲精品久久久久久久软件 | 91看片淫黄大片欧美看国产片 | 91不雅视频 | 免费在线观看毛片视频 | 国产精品性夜天天视频 | 少妇的肉体的满足毛片 | 久久久久久久一区二区 | 欧美成人免费电影 |