当前位置: 首页 > 面试题库 >

Eclipse插件:如何获取当前所选项目的路径

养鸿运
2023-03-14
问题内容

我正在编写一个Eclipse插件,它将在Java项目的上下文菜单中显示一个菜单项。我已将plugin.xml编写如下:

<plugin>
   <extension
         point="org.eclipse.ui.menus">
      <menuContribution
            locationURI="popup:org.eclipse.jdt.ui.PackageExplorer">
         <dynamic
               class="uk.co.dajohnston.plugin.classpathswitcher.menu.MenuContribution"
               id="uk.co.dajohnston.plugin.classpathSwitcher.switchMenuContribution">
            <visibleWhen>
               <with
                     variable="activeMenuSelection">
                  <iterate>
                     <adapt
                           type="org.eclipse.jdt.core.IJavaProject">
                     </adapt>
                  </iterate>
                  <count
                        value="1">
                  </count>
               </with>
            </visibleWhen>
         </dynamic>
      </menuContribution>
   </extension>

</plugin>

因此,我现在尝试编写MenuContribution扩展的类,CompoundContributionItem以便可以创建动态菜单,并且该菜单的内容将基于Java项目根目录中存在的一组文件。但是我一直试图从getContributionItems方法中获取到根目录的路径。

基于plugin.xml文件,我可以确保仅在选择了单个Java项目的情况下才调用该方法,因此,我要做的就是获取当前选择,然后获取其绝对路径。有任何想法吗?还是有更好的方法来做到这一点?


问题答案:

这应该使您更接近(如果不能完全为您解决;)

    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    if (window != null)
    {
        IStructuredSelection selection = (IStructuredSelection) window.getSelectionService().getSelection();
        Object firstElement = selection.getFirstElement();
        if (firstElement instanceof IAdaptable)
        {
            IProject project = (IProject)((IAdaptable)firstElement).getAdapter(IProject.class);
            IPath path = project.getFullPath();
            System.out.println(path);
        }
    }


 类似资料:
  • 现在只有一个命令提示版本的系统可供此VCS和它的运行在终端。因此,在我的eclipse插件中,我想提供一个简单的菜单选项来执行诸如check-out和check-in之类的操作,并在内部调用这些命令。但是要运行这些命令,我需要在编辑器/项目资源管理器中传递所选.java文件的参数'path'。我怎样才能获得外挂源文件的路径?

  • 我正在使用Eclipse Plugin-in-project开发一个Eclipse插件,它将在工具栏中添加一个菜单项。 请帮我解决这个问题!

  • 问题内容: 如何在中获取所选项目的文本? 问题答案: 从JTree的 Java教程网站:

  • 问题内容: 我想获取当前文件的目录路径。我试过了: 但是,如何检索目录的路径? 例如: 问题答案: Python 3 对于正在运行的脚本的目录: 对于当前工作目录: 对于正在运行的脚本的目录: 如果你的意思是当前工作目录: 请注意,前后分别是两个下划线,而不仅仅是一个。 另请注意,如果你正在交互运行或已从文件以外的内容(例如数据库或在线资源)中加载了代码,则可能不会设置,因为没有“当前文件”的概念

  • 当前文档只讨论获取路由参数,而不是实际的路由段。 例如,如果我想找到当前路由的父级,怎么可能?

  • 我尝试下载SonarQube,并根据此链接执行每个步骤,在build.gradle中设置SonarQube并添加SonarQube插件 我能够从命令执行SonarQube,但是当我在build.gradle中添加SonarCube插件时,当我试图同步一个项目时,它显示了一个类似这样的错误, 错误25:所有buildscript{}块必须出现在脚本中的任何plugins{}块之前 但是我已经在Bui