java - 如何获取与项目选择对应的不同工作空间

标签 java eclipse eclipse-plugin

我正在开发 Eclipse 插件。在项目资源管理器中有几个项目,我已将这些项目存储在不同的工作空间中(我已添加新项目但不同的工作空间)。为了获取所选项目的工作区,我使用以下代码

ResourcesPlugin.getWorkspace().getRoot().getLocation().toString();

但它总是返回我第一次打开项目时选择的工作区。有没有办法从项目资源管理器中获取与不同项目选择相对应的不同工作区。

最佳答案

在您的项目选择监听器中,您可以执行类似的操作。我希望您指的是标准 Eclipse 项目资源管理器。

ISelectionService service = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
    IStructuredSelection structured = (IStructuredSelection) service.getSelection(IPageLayout.ID_PROJECT_EXPLORER);
    if (structured instanceof IStructuredSelection)
    {
        Object selectedObject = ((IStructuredSelection) structured).getFirstElement();
        if (selectedObject instanceof IAdaptable)
        {
            IResource resource = (IResource) ((IAdaptable) selectedObject).getAdapter(IResource.class);
            if (resource != null)
            {
                IProject project = resource.getProject();
                 IPath location = project.getLocation();
            }
        }
    }   

关于java - 如何获取与项目选择对应的不同工作空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36858098/

相关文章:

java - 正则表达式:如何包含 "if"条件的字符

java - 使用来自 ChannelSftp.get 的输入流时 ChannelSftp.put 方法卡住

java - Eclipse EcLemma 涵盖的指令数多于代码行数

java - 手机关机后重新启动

eclipse - 如何更改 Eclipse 建议顺序和内容

java - eclipse : saved LaunchConfiguration overrides LaunchType

java - 为什么这个静态嵌套类不能在一台计算机上的 Java 中运行?

java - 以秒为单位的时差给了我错误的答案

tomcat - OSGi 插件不会在 tomcat 中启动

Java 应用程序分析和测试