在我的自定義Eclipse插件中,我有一個Java類的完全限定類名作爲字符串,並且想知道它的實際文件路徑。實際上,我想知道它所在的源文件夾的名稱。如何確定Eclipse插件中的Java源文件的絕對文件路徑?
該類可以來自Workspace中的任何Java項目。源文件夾名稱是任意的。
我使用Eclipse 3.6。
謝謝!
在我的自定義Eclipse插件中,我有一個Java類的完全限定類名作爲字符串,並且想知道它的實際文件路徑。實際上,我想知道它所在的源文件夾的名稱。如何確定Eclipse插件中的Java源文件的絕對文件路徑?
該類可以來自Workspace中的任何Java項目。源文件夾名稱是任意的。
我使用Eclipse 3.6。
謝謝!
您將不得不使用搜索引擎API。見org.eclipse.jdt.core.search.SearchEngine
。
您可以看到有多種靜態函數可以調用,每個靜態函數都有自己的選項。您需要創建一個合適的org.eclipse.jdt.core.search.SearchPattern
,然後將其與搜索引擎(工作區)和請求者(收集所有結果的東西)一起傳遞給搜索引擎。
通常情況下,你會得到一堆東西,比如IType
,它們是訪問Java模型中的類型的公共API。您可以撥打IType.getResource().getLocation()
來獲取任何類型的文件系統位置。 getResource方法可能返回null,所以你需要檢查。
您將需要使用JDT API stuff才能訪問Java類的IResource
。從那裏你可以使用資源API獲取包含的文件夾以及任何你需要的東西。
謝謝!這聽起來很有希望。我可以在星期一嘗試,並告訴你它是否有效。你能推薦一個特定的'SearchEngine'方法嗎? –
「打開類型」對話框(Control + Shift + T)使用相同的SearchEngine。 – Ravi
@Ravi是的,這就是我所希望的!順便說一句,我可以簡單地創建一個'SearchEngine'類的新實例,還是我需要從Eclipse工廠獲取它? –