嵌入式Groovy控制台 - 如何共享整个状态

时间:2013-05-30 00:21:37

标签: java debugging groovy groovy-console

我想将GroovyConsole嵌入到现有的Java应用程序中,以进行设计原型设计和调试。

我真的很喜欢这个控制台可以访问我的整个程序 - 大多数情况下这意味着任何单身人士或工厂都应该返回实际的对象,而不是为GroovyConsole的世界创建一个新的。

有没有办法做到这一点,或者我是否必须使用setVariable()调用逐个手动传递所有对象?

1 个答案:

答案 0 :(得分:2)

这实际上非常简单。最有可能的是,您可以使用no-arg构造函数创建一个新的控制台,它将根据您的需要设置它。如果您的应用程序使用多个classLoader,只需在创建Console实例时传入所需的类:

def cl = ... //which ClassLoader you'll need depends on your application
def console = new Console(cl)
console.run()

这将创建一个新的Groovy控制台并告诉它使用您想要的任何类加载器。这不会设置任何绑定或变量,但它确保控制台使用的类与应用程序的其余部分完全相同。如果你没有对应用程序中的类加载器做任何特殊操作,只需调用新的Console()就可以使用当前的类加载器作为父类。