我怎样才能将项目类型识别为eclipse插件?

wlf*_*bck 3 java eclipse pde

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

我一直在谷歌和这里搜索几个小时,但无济于事.我是否可以访问我想要的信息而无需选择一些虚假的扩展点(列出的那些似乎都不适合我想做的事情)?我的意思是,我现在不想向Eclipse添加任何内容,我只想将这些内容打印到控制台中.(开始小和东西)

对不起,长期咆哮,但我不知道如何更好地表达我的问题.

gre*_*449 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);
Run Code Online (Sandbox Code Playgroud)

要么

IFile file = (IFile)Platform.getAdapterManager().getAdapter(obj, IFile.class);
Run Code Online (Sandbox Code Playgroud)

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

IProject project = (IProject)Platform.getAdapterManager().getAdapter(obj, IProject.class);
Run Code Online (Sandbox Code Playgroud)

Platform在上面是org.eclipse.core.runtime.Platform(PlatformEclipse中还有其他类,所以一定要得到正确的类).

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

IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
Run Code Online (Sandbox Code Playgroud)

  • 添加了有关查找“IProject”来回答的信息 (2认同)