我使用CLIPS JNI制作了一个CLIPS-JAVA项目,从JAVA调用CLIPS。
CLIPS代码包含一些打印输出语句,这些语句直接打印到Eclipse IDE的控制台。
但是,我希望此输出由Java中的字符串捕获,而不是打印到控制台输出。
最佳答案
在CLIPSJNI for CLIPS 6.4中,您可以使用内置路由器类之一捕获输出。
public static void main(String args[])
{
Environment clips;
CaptureRouter theRouter;
clips = new Environment();
theRouter = new CaptureRouter(clips,new String [] { Router.STDOUT,
Router.STDERR,
Router.STDWRN } );
try
{
clips.build("(defrule hello => (println \"Hello World\"))");
clips.reset();
clips.run();
System.out.println("Output: " + theRouter.getOutput());
theRouter.clear();
}
catch (Exception e)
{
}
clips.deleteRouter(theRouter);
}