错误的IJavaProject返回

时间:2015-07-06 07:06:53

标签: java eclipse

我在工作区Proj1Proj2中有多个JAVA项目时遇到的问题。

例如:当我在build_path中打开Proj2并在Package Explorer内选择任何类的节点时,两者都在其rt.jar中有JRE系统库(在JRE中) lib),我正在获得项目Proj1而不是Proj2Proj1Proj2上方显示Package Explorer

ISelection selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getSelection();

if(selection instanceof IStructuredSelection) {
    Object element = ((IStructuredSelection)selection).getFirstElement();
    if (element instanceof IClassFile){
      IJavaProject jProject = ((IClassFile) element).getJavaProject();
      project = jProject.getProject();
     //returns 'Proj1' and not 'Proj2'
    }

1 个答案:

答案 0 :(得分:0)

似乎:  Object element = ((IStructuredSelection)selection).getFirstElement(); 总是返回包资源管理器中的第一个项目。

尝试类似的东西:

TreeSelection selection = (TreeSelection) window.getSelectionService().getSelection(); Object firstElement = selection.getFirstElement(); if (firstElement instanceof IAdaptable){ try{ IProject project = (IProject)((IAdaptable)firstElement).getAdapter(IProject.class); ...

然后使用:

获取IJavaProject

IJavaProject ijp = JavaCore.create(project);