av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

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

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

創(chuàng)新互聯(lián)2013年開(kāi)創(chuàng)至今,先為始興等服務(wù)建站,始興等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為始興企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

解決方案

擴(kuò)展性類加載器

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

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

BootStrap類加載器擴(kuò)展方案

采用 -Xbootclasspath參數(shù)進(jìn)行加載擴(kuò)展jar包。

Java命令行提供了如何擴(kuò)展bootStrap級(jí)別class的簡(jiǎn)單方法。

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

語(yǔ)法如下: (分隔符與classpath參數(shù)類似,unix使用:號(hào),windows使用;號(hào),這里以u(píng)nix為例)

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

User class擴(kuò)展方案

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

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

步驟如下:

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

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

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

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

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

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

新聞標(biāo)題:Java學(xué)習(xí)|如何擴(kuò)展加載Jar包?
本文鏈接:http://uogjgqi.cn/article/cdejdcg.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流