我在工作区Proj1
和Proj2
中有多个JAVA项目时遇到的问题。
例如:当我在build_path
中打开Proj2
并在Package Explorer
内选择任何类的节点时,两者都在其rt.jar
中有JRE系统库(在JRE中) lib),我正在获得项目Proj1
而不是Proj2
(Proj1
上Proj2
上方显示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'
}
答案 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);