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

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

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

有帮助吗?

解决方案

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

IProject.getDescription 方法返回你一个 IProjectDescription 包含有关该项目的信息。

要确定项目类型,您需要查看 natures 项目描述中定义的。这 IProjectDescription.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);

Platform 上面是 org.eclipse.core.runtime.Platform (还有其他 Platform Eclipse 中的类,因此请确保获得正确的类)。

如果您只有项目名称,则使用:

IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top