中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java Xbootclasspath參數、jar參數運行應用時classpath的設置方法是什么

發布時間:2021-11-24 15:18:44 來源:億速云 閱讀:738 作者:iii 欄目:大數據

這篇文章主要介紹“java Xbootclasspath參數、jar參數運行應用時classpath的設置方法是什么”,在日常操作中,相信很多人在java Xbootclasspath參數、jar參數運行應用時classpath的設置方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java Xbootclasspath參數、jar參數運行應用時classpath的設置方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

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

解決方案

一 BootStrap class擴展方案

Java 命令行提供了如何擴展bootStrap 級別class的簡單方法. -Xbootclasspath: 完全取代基本核心的Java class 搜索路徑. 不常用,否則要重新寫所有Java 核心class -Xbootclasspath/a: 后綴在核心class搜索路徑后面.常用!! -Xbootclasspath/p: 前綴在核心class搜索路徑前面.不常用,避免 引起不必要的沖突.

語法如下: (分隔符與classpath參數類似,unix使用:號,windows使用;號,這里以unix為例) java -Xbootclasspath/a:/usrhome/thirdlib.jar: -jar yourJarExe.jar

二 extend class 擴展方案

Java exten class 存放在{Java_home}\jre\lib\ext目錄下.當調用Java時,對擴展class路徑的搜索是自動的.總會搜索的.這樣,解決的方案就很簡單了,將所有要使用的第三方的jar包都復制到ext 目錄下.

三 User class擴展方案

當使用-jar執行可執行Jar包時,JVM將Jar包所在目錄設置為codebase目錄,所有的class搜索都在這個目錄下開始.所以如果使用了其他第三方的jar包,一個比較可以接受的可配置方案,就是利用jar包的Manifest擴展機制. 步驟如下:

1.將需要的第三方的jar包,復制在同可執行jar所在的目錄或某個子目錄下. 比如:jar 包在 /usrhome/yourJarExe.jar 那么你可以把所有jar包復制到/usrhome目錄下或/usrhome/lib 等類似的子目錄下.

2.修改Manifest 文件

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

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

Class-Path 是可執行jar包運行依賴的關鍵詞。要注意的是 Class-Path 只是作為你本地機器的CLASSPATH環境變量的一個縮寫,也就是說用這個前綴表示在你的jar包執行機器上所有的CLASSPATH目錄下尋找相應的第三方類/類庫。你并不能通過 Class-Path 來加載位于你本身的jar包里面(或者網絡上)的jar文件。因為從理論上來講,你的jar發布包不應該再去包含其他的第三方類庫(而應該通過使用說明來提醒用戶去獲取相應的支持類庫)。如果由于特殊需要必須把其他的第三方類庫(jar, zip, class等)直接打包在你自己的jar包里面一起發布,你就必須通過實現自定義的ClassLoader來按照自己的意圖加載這些第三方類庫。

以上三種方法推薦第一種,擴展性好,操作起來也最方便.

Java的安全機制隨不同的JDK版本有不同的變化,會影響很多核心CLASS,比如Thread,所以很多大型商業軟件,要求JDK的版本很嚴格.部分原因也在此.這也要求在發布自己編寫的應用時候,不管大小,都要說明開發和測試的JDK版本.

補充:jdk9 支持-Xbootclasspath/a jdk8以及之前支持這三種

到此,關于“java Xbootclasspath參數、jar參數運行應用時classpath的設置方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

桓仁| 当阳市| 沂南县| 神池县| 石泉县| 龙胜| 岳阳市| 连城县| 罗江县| 南丹县| 连江县| 城固县| 温宿县| 从化市| 青冈县| 邢台市| 射洪县| 连云港市| 都匀市| 松江区| 洛扎县| 桐城市| 临清市| 集安市| 丹江口市| 白银市| 郎溪县| 普格县| 措美县| 巧家县| 武城县| 江孜县| 绥阳县| 汶上县| 镇平县| 陈巴尔虎旗| 个旧市| 高青县| 休宁县| 无为县| 容城县|