【发布时间】:2015-11-05 11:11:00
【问题描述】:
我正在开发一个使用 Groovy 作为脚本语言的 RCP 应用程序。我包含了 Groovy-Eclipse 插件,让应用程序的用户可以使用 Groovy 编辑器在应用程序中编写 Groovy 代码。
Groovy 脚本必须使用应用程序中的一些 Java 类,我如何在 Groovy 编辑器中为这些类添加可见性,以尽可能透明地为用户提供代码完成等功能。
为了执行 Groovy 脚本,我使用了 GroovyShell,并向传递给 GroovyShell 构造函数的 Binding 添加了一个属性。
这个属性是一个地图,我在其中放置了一些与我的应用程序相关的对象:
HashMap<String, Object> plx = new HashMap<String, Object>();
plx.put("element", new Element("xxx"));
Binding binding = new Binding();
binding.setProperty("plx", plx);
想象一下 Element 是一个这样定义的 Java 类
class Element
{
String name;
public Element(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}
我可以毫无问题地编写和执行以下 Groovy 脚本
println plx.element.name
我得到正确的结果:xxx
我的问题是我不知道如何修改编辑器使用的类路径,以便在我在应用程序中编辑脚本时解析 Element 类以启用代码完成。
【问题讨论】:
标签: java eclipse groovy eclipse-rcp