我想从Eclipse插件中识别当前所选项目的类型(java / c / ...);如果可能的话还有一些其他信息(使用过的库和什么不是),基本上是围绕项目的所有信息。
我一直在谷歌和这里搜索几个小时,但无济于事。我是否可以访问我想要的信息而无需选择一些虚假的扩展点(列出的那些似乎都不适合我想做的事情)?我的意思是,我现在不想向Eclipse添加任何内容,我只想将这些内容打印到控制台中。 (从小处开始)
很抱歉长期咆哮,但我不知道如何更好地表达我的问题。
答案 0 :(得分:6)
许多此类信息存储在项目文件夹的.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
(Eclipse中还有其他Platform
类,所以一定要找到正确的类。)
如果您只有项目名称,请使用:
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);