我正在开发一个具有UI的Eclipse插件。我需要的是能够在运行时访问插件的代码(从插件加载一些类名以在UI中构建下拉列表),并且还能够在插件中生成一个类' s源代码,在运行时以相同的方式。
有没有办法做到这一点?
为了访问代码,我尝试了以下内容:
IWorkspace thisWorkspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot thisWorkspacesRoot = thisWorkspace.getRoot();
IProject thisProject = thisWorkspacesRoot.getProject("MyPluginsNameHere");
IJavaProject thisJavaProject = JavaCore.create(thisProject);
然后我解析这个IJavaProject并获取类。
问题是变量 thisWorkspace 是用运行时eclipse应用程序的工作区加载的,而不是插件的工作区。
此处讨论了此问题:https://www.eclipse.org/forums/index.php/t/105604/
给定的解决方案是:
我找到了工作区位置的技巧。这是我的代码: org.eclipse.core.resources.ResourcesPlugin.getWorkspace()。ge tRoot()。getLocation()
当我通过" Launc an Eclipse Application"来运行它来进行测试时或者"运行 Eclipse Application"按钮,它返回此位置: 工作区:C:/ Documents and Settings / rbt / My 文档/运行时间EclipseApplication
但是,当我将其导出为"可部署的插件" (文件 - >导出 - >部署 插件和片段),重新启动Eclipse并以可部署的方式执行它 插入。这次,它返回此位置: C:/ Documents and Settings / rbt / My Documents / workspace
这不能应用于我的插件,因为我依赖于另一个无法作为可部署插件导出的插件。
还有其他方法可以做到这一点,并将插件作为Eclipse应用程序运行吗?