返回了java项目
当我在工作区Proj1
和Proj2
中有多个JAVA项目时,我刚刚遇到了一个问题
例如:两者的build_path
中都有JRE系统库,当我在Package Explorer
中打开Proj2
并选择rt.jar
(在JRE库中)中任何类的节点时,我得到的是项目Proj1
,而不是Proj2
(Proj1
出现在Package Explorer
中的Proj2
上方)
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 楼答案
似乎:
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);