在我的自定义Eclipse插件中,我有一个Java类的完全限定类名作为字符串,并且想知道它的实际文件路径。实际上,我想知道它所在的源文件夹的名称。如何确定Eclipse插件中的Java源文件的绝对文件路径?
该类可以来自Workspace中的任何Java项目。源文件夹名称是任意的。
我使用Eclipse 3.6。
谢谢!
在我的自定义Eclipse插件中,我有一个Java类的完全限定类名作为字符串,并且想知道它的实际文件路径。实际上,我想知道它所在的源文件夹的名称。如何确定Eclipse插件中的Java源文件的绝对文件路径?
该类可以来自Workspace中的任何Java项目。源文件夹名称是任意的。
我使用Eclipse 3.6。
谢谢!
您将不得不使用搜索引擎API。见org.eclipse.jdt.core.search.SearchEngine
。
您可以看到有多种静态函数可以调用,每个静态函数都有自己的选项。您需要创建一个合适的org.eclipse.jdt.core.search.SearchPattern
,然后将其与搜索引擎(工作区)和请求者(收集所有结果的东西)一起传递给搜索引擎。
通常情况下,你会得到一堆东西,比如IType
,它们是访问Java模型中的类型的公共API。您可以拨打IType.getResource().getLocation()
来获取任何类型的文件系统位置。 getResource方法可能返回null,所以你需要检查。
您将需要使用JDT API stuff才能访问Java类的IResource
。从那里你可以使用资源API获取包含的文件夹以及任何你需要的东西。
谢谢!这听起来很有希望。我可以在星期一尝试,并告诉你它是否有效。你能推荐一个特定的'SearchEngine'方法吗? –
“打开类型”对话框(Control + Shift + T)使用相同的SearchEngine。 – Ravi
@Ravi是的,这就是我所希望的!顺便说一句,我可以简单地创建一个'SearchEngine'类的新实例,还是我需要从Eclipse工厂获取它? –