2016-07-06 118 views
0

我會嘗試開發一些插件。所以,我正在研究插件和聽衆。 我嘗試使用listener和javamodel開發示例。 但是,當我訪問IPackageFragmentRoot元素時,它沒有按照我的要求做。 所以,我調試它。那麼,我看到IJavaProject元素沒有打開!但是我仍然可以在eclipse中訪問這個項目。爲什麼我無法訪問IPackageFragmentRoot?

我的代碼有什麼問題?以及如何在IPackageFragmentRoot中訪問?

這些是非開放狀態的例子。

project

pacakage

這是代碼段。 currentProject是我在包資源管理器中選擇的IProject。

if (currentProject != null) { 
    try { 
     currentProject.open(new NullProgressMonitor()); 
    } catch (CoreException e) { 
     e.printStackTrace(); 
    } 
    IJavaProject javaProject = JavaCore.create(currentProject); 
    ProjectTreeNode root = createTreeNode(javaProject.getElementName()); 
    IPackageFragmentRoot srcFolder = javaProject.getPackageFragmentRoot("src"); 
    root = getContents(srcFolder, root); 
    setInput(root); 
} 

地址

我進口的新的工作區的一些項目。

enter image description here

這是錯誤的方式?

回答

0

我假設你使用'Run as Eclipse Application'來運行和測試你的插件。

當您運行插件時,Eclipse會啓動一個全新的Eclipse實例,並提供一個新的工作空間。這個工作區中沒有您現有的代碼。您必須在此新工作區中創建包含要測試的項目的新項目。

+0

感謝您的回答。但我有另一個問題。所以,我會更新我的問題。你可以幫我嗎? – user3649231

+0

我不能告訴你已經顯示。當你調試你的插件會發生什麼?你是否獲得了'IProject'?你得到'IJavaProject'嗎? –

+0

嗯.....謝謝你的回答。我發現我的錯誤,並得到一個解決方案。 – user3649231

相關問題