【问题标题】:How i can i identify the project type as an eclipse plug-in?我如何将项目类型识别为 Eclipse 插件?
【发布时间】:2013-11-30 00:33:50
【问题描述】:

我想从一个Eclipse插件中识别当前选中项目的类型(java/c/...);如果可能的话,还有一些其他信息(使用过的库等等),基本上是项目周围的所有信息。

我已经在谷歌和这里搜索了几个小时,但无济于事。我什至可以在不选择一些虚假扩展点的情况下访问我想要的信息(列出的那些似乎都不适合我想要做的)?我的意思是,我现在不想向 Eclipse 添加任何内容,我只想将这些内容打印到控制台中。 (从小事做起)

对不起,长篇大论,但我现在不知道如何更好地表达我的问题。

【问题讨论】:

    标签: java eclipse pde


    【解决方案1】:

    很多此类信息存储在项目文件夹的.project 文件中。访问信息的正确方法是通过项目的IProject 对象。

    IProject.getDescription 方法返回一个包含项目信息的IProjectDescription

    要确定项目类型,您需要查看项目描述中定义的naturesIProjectDescription.getNatureIds() 方法返回一个自然 ID 数组。 Java 项目将具有org.eclipse.jdt.core.javanature,插件将具有org.eclipse.pde.PluginNature(Java 插件将具有这两种性质)。

    查找IProject。如果您在 Package 或 Project Explorer 之类的选项中有选择,请尝试:

    IResource resource = (IResource)Platform.getAdapterManager().getAdapter(obj, IResource.class);
    

    IFile file = (IFile)Platform.getAdapterManager().getAdapter(obj, IFile.class);
    

    这些接口的getProject() 方法为您提供IProject。你也可以这样做:

    IProject project = (IProject)Platform.getAdapterManager().getAdapter(obj, IProject.class);
    

    上面的Platformorg.eclipse.core.runtime.Platform(Eclipse 中还有其他Platform 类,所以一定要选对)。

    如果您只有一个项目名称,请使用:

    IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
    

    【讨论】:

    • 首先,感谢您的回答。但我什至如何获得选定的 IProject?我得到了 activeworkbench 和选择服务,问题是如果我点击我的即兴按钮,按钮当然是选定的元素。
    • 添加了关于寻找IProject回答的信息
    • 非常感谢!感谢您的回答,找到了我需要的东西:)
    • 对不起,这里的人不太能干:你说“如果你在包或项目资源管理器之类的东西中有选择,请尝试:”+ [Java 代码行]...你能解释一下我实际上有什么吗?怎么办才能让这样一条线跑?它是 .java 文件中 main 方法的一部分吗?我迷路了!
    • @mikerodent 此代码必须是安装在 Eclipse 中的 Eclipse 插件的一部分。插件不使用main 方法。插件中的代码通常会响应某些事件而运行,例如被选中的菜单项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    相关资源
    最近更新 更多