——此文章摘自《自己動手寫開發工具
基於Eclipse的工具開發》定價
¥
特價
¥
詳細>>
http://track
linktech
cn/?m_id=dangdang&a_id=A
&l=
&l_type
=
width=
height=
border=
nosave>
下面解釋一下代碼中的重點部分
() IClasspathEntry[] oldPaths = javaProjectreadRawClasspath();
讀取項目原有的構建路徑條目
() IClasspathEntry luceneLibEntry = JavaCorenewLibraryEntry(
projectgetFile(LIB + FILESEPARATOR + LUCENEJAR)getFullPath()
projectgetFile(LIB + FILESEPARATOR + LUCENESRCJAR)getFullPath()
null false);
這一句構建lucene的jar包
第個參數是二進制jar包的位置我們的二進制jar包的位置為項目路徑下的lib/lucenesrcjar
第個參數是jar包對應的源碼包的位置
第個參數為源碼包的根路徑因為有的源碼jar包的源碼根路徑不是jar包的根路徑比如simplejta的源碼jar包的格式如圖所示
http://developcsaicn/Java_Eclipse/images/jpg>
圖 Jar包的結構
對於這種情況就要指定第個參數為srclucene的源碼包的源碼根路徑就是jar包的根路徑因此我們設置此參數為null
第個參數表示是否導出我們設置為false
() URL luceneLib = ActivatorgetDefault()getBundle()getEntry(RESOUCELIB + FILE SEPARATOR + LUCENEJAR);
我們把lucenejar lucenesrcjar放到我們插件的resoucelib目錄下當用戶單擊【為項目添加lucene支持】的時候要把這兩個文件復制到項目的lib目錄下因此需要首先讀取插件路徑resoucelib目錄下的這兩個jar包
讀取插件路徑下的文件時我們使用插件Activator類提供的方法即可比如如下調用
ActivatorgetDefault()getBundle()getEntry(config/myxml);
就可以讀取到插件根目錄下的文件config/myxml返回類型是javanetURL
() copyURLToFile(luceneLib project LIB + FILESEPARATOR + LUCENEJAR);
ActivatorgetDefault()getBundle()getEntry讀取到的文件位置是URL類型的我們需要把這個URL對應的文件復制到項目的lib下下面看一下copyURLToFile的主干代碼
inStream = urlopenStream();
IFile file = projectgetFile(destFileName);
if (!fileexists())
{
filecreate(inStream true null);
}
URL類有一個openStream可以打開文件的輸入流IFile也有一個接受輸入流的create方法用來創建文件因此我們只需要把url的輸入流輸出給IFile的create方法即可
這裡我們也可以由url得到其對應的磁盤上的路徑也可以得到IFile對應的磁盤上的路徑然後使用Java IO來進行文件復制操作但是這樣做不僅代碼數量變多了而且由於使用的不是Eclipse的資源管理API會帶來無法自動刷新等問題因此建議盡量使用Eclipse提供的API來完成此功能
right>[http://developcsaicn/Java_Eclipse/htm>] [http://developcsaicn/Java_Eclipse/htm>] [http://developcsaicn/Java_Eclipse/htm>] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28990.html