真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java中如何擴展加載Jar包

這篇文章主要介紹了Java中如何擴展加載Jar包,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

為企業(yè)提供成都網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)營銷推廣、競價托管、品牌運營等營銷獲客服務(wù)。創(chuàng)新互聯(lián)建站擁有網(wǎng)絡(luò)營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認可!

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

解決方案

擴展性類加載器

擴展性類加載器一般存放在{Java_home}\jre\lib\ext目錄下,當調(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為例)

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

User class擴展方案

當使用-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文件里加入如下行:

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來按照自己的意圖加載這些第三方類庫。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java中如何擴展加載Jar包”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!


分享題目:Java中如何擴展加載Jar包
轉(zhuǎn)載來源:http://weahome.cn/article/iejecs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部