這篇文章主要介紹“Java的Classpath工具怎么使用”,在日常操作中,相信很多人在Java的Classpath工具怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”Java的Classpath工具怎么使用”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)網(wǎng)站建設(shè)服務(wù)商,為中小企業(yè)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作服務(wù),網(wǎng)站設(shè)計(jì),網(wǎng)站托管運(yùn)營等一站式綜合服務(wù)型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競(jìng)爭對(duì)手中脫穎而出創(chuàng)新互聯(lián)。二、可能出現(xiàn)的問題
不管他們是否愿意承認(rèn),初學(xué)者和富有經(jīng)驗(yàn)的Java開發(fā)者都一樣,他們都曾經(jīng)在某些時(shí)候(通常是在那些最糟糕的情形下)被冗長、復(fù)雜的classpath欺騙。應(yīng)用程序所依賴的第三方類和用戶定義類的數(shù)量逐漸增長,classpath也逐漸成了一個(gè)堆積所有可能的目錄和檔案文件名的地方。此時(shí),類裝載器首先裝載的究竟是哪一個(gè)類也就不再顯而易見。如果classpath中包含重復(fù)的類入口,這個(gè)問題尤其突出。前面已經(jīng)提到,類裝載器總是裝載第一個(gè)它在classpath中找到的具有合適名字的類,從實(shí)際效果看,它“隱藏”了其他具有合適名字但在classpath中優(yōu)先級(jí)較低的類。
如果不小心,你很容易掉進(jìn)這個(gè)classpath的陷阱。當(dāng)你結(jié)束了一天漫長的工作,最后為了讓應(yīng)用程序使用最好、最新的類,你把一個(gè)目錄加入到了classpath,但與此同時(shí),你卻忘記了:在classpath的另一個(gè)具有更高優(yōu)先級(jí)的目錄下,存放著該類的另一個(gè)版本!
三、一個(gè)簡單的classpath工具
優(yōu)先級(jí)問題是扁平路徑聲明方法與生俱來固有的問題,但它不是只有Java的classpath才有的問題。要解決這個(gè)問題,你只需站到富有傳奇色彩的軟件巨構(gòu)的肩膀上:Unix操作系統(tǒng)有一個(gè)which命令,在命令參數(shù)中指定一個(gè)名字,which就會(huì)顯示出當(dāng)這個(gè)名字作為命令執(zhí)行時(shí)執(zhí)行文件的路徑名。實(shí)際上,which命令是分析PATH變量,然后找出命令第一次出現(xiàn)的位置。對(duì)于Java的類路徑管理來說,這應(yīng)該也是一個(gè)好工具。在它的啟發(fā)之下,我著手設(shè)計(jì)了一個(gè)Java工具JWhich。這個(gè)工具要求指定一個(gè)Java類的名字,然后根據(jù)classpath的指引,找出類裝載器即將裝載的類所在位置的絕對(duì)路徑。
下面是一個(gè)JWhich的使用實(shí)例。它顯示出當(dāng)Java類裝載器裝載com.clarkware.ejb.ShoppingCartBean類時(shí),該類第一次出現(xiàn)位置的絕對(duì)路徑名,查找結(jié)果顯示該類在某個(gè)目錄下:
> java JWhich com.clarkware.ejb.ShoppingCartBean
Class
′com.clarkware.ejb.ShoppingCartBean′ found in
′/home/mclark/classes/com/clarkware/ejb/ShoppingCartBean.class′
下面是第二個(gè)JWhich的使用實(shí)例。它顯示出當(dāng)Java類裝載器裝載javax.servlet.http.HttpServlet類時(shí),該類第一次出現(xiàn)位置的絕對(duì)路徑名,查找結(jié)果顯示該類在某個(gè)檔案文件中:
> java JWhich javax.servlet.http.HttpServlet
Class
′javax.servlet.http.HttpServlet′ found in
′file:/home/mclark/lib/servlet.jar!/javax/servlet/http/HttpServlet.class′
到此,關(guān)于“Java的Classpath工具怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!