国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

玩轉Java的CLASSPATH(二)Classpath工具

2019-11-17 06:10:43
字體:
來源:轉載
供稿:網友
二、可能出現的問題

  不管他們是否愿意承認,初學者和富有經驗的java開發者都一樣,他們都曾經在某些時候(通常是在那些最糟糕的情形下)被冗長、復雜的classpath欺騙。
應用程序所依靠的第三方類和用戶定義類的數量逐漸增長,classpath也逐漸成了一個堆積所有可能的目錄和檔案文件名的地方。此時,類裝載器首先裝載的究竟是哪一個類也就不再顯而易見。假如classpath中包含重復的類入口,這個問題尤其突出。前面已經提到,類裝載器總是裝載第一個它在classpath中找到的具有合適名字的類,從實際效果看,它“隱藏”了其他具有合適名字但在classpath中優先級較低的類。

  假如不小心,你很輕易掉進這個classpath的陷阱。當你結束了一天漫長的工作,最后為了讓應用程序使用最好、最新的類,你把一個目錄加入到了classpath,但與此同時,你卻忘記了:在classpath的另一個具有更高優先級的目錄下,存放著該類的另一個版本!

三、一個簡單的classpath工具

  優先級問題是扁平路徑聲明方法與生俱來固有的問題,但它不是只有Java的classpath才有的問題。要解決這個問題,你只需站到富有傳奇色彩的軟件巨構的肩膀上:Unix操作系統有一個which命令,在命令參數中指定一個名字,which就會顯示出當這個名字作為命令執行時執行文件的路徑名。實際上,which命令是分析PATH變量,然后找出命令第一次出現的位置。對于Java的類路徑治理來說,這應該也是一個好工具。在它的啟發之下,我著手設計了一個Java工具JWhich。這個工具要求指定一個Java類的名字,然后根據classpath的指引,找出類裝載器即將裝載的類所在位置的絕對路徑。

  下面是一個JWhich的使用實例。它顯示出當Java類裝載器裝載com.clarkware.ejb.ShoppingCartBean類時,該類第一次出現位置的絕對路徑名,查找結果顯示該類在某個目錄下:

> java JWhich com.clarkware.ejb.ShoppingCartBean

Class 'com.clarkware.ejb.ShoppingCartBean' found in
'/home/mclark/classes/com/clarkware/ejb/ShoppingCartBean.class'

  下面是第二個JWhich的使用實例。它顯示出當Java類裝載器裝載javax.servlet.http.HttpServlet類時,該類第一次出現位置的絕對路徑名,查找結果顯示該類在某個檔案文件中:

> java JWhich javax.servlet.http.HttpServlet

Class 'javax.servlet.http.HttpServlet' found in
'file:/home/mclark/lib/servlet.jar!/javax/servlet/http/HttpServlet.class'


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临安市| 陵水| 井研县| 姚安县| 丹东市| 铜鼓县| 佳木斯市| 清远市| 亳州市| 望都县| 桂东县| 文安县| 宿迁市| 武夷山市| 京山县| 会同县| 威远县| 安乡县| 烟台市| 虎林市| 临汾市| 台中市| 河西区| 禄丰县| 司法| 麻城市| 新绛县| 澎湖县| 繁峙县| 阿巴嘎旗| 长垣县| 嵩明县| 新乐市| 沁源县| 怀宁县| 海宁市| 治多县| 武汉市| 石狮市| 沙田区| 孝昌县|