Java中JESS的输出

我想将一个“事实”发送到java中的JESS文件并返回结果。 我基本上批处理JESS文件,然后通过.add()将我的数据(这里的结构)发送到引擎。 我试图将JESS结果(应该是一个字符串)转换为“值”。

Rete engine = new Rete(); engine.batch("file.clp"); Value = AAAnull; try{ engine.add(structure) AAA = engine.eval("(run)"); } catch ... System.out.println(AAA); 

结果总是一个数字,但结果应该是一个字符串。 我已经在一个简单的java项目中解决了这个问题,AAA正在返回字符串,但是这里它没有用。

(run)函数返回触发的规则数; 那是你在这里看到的数字。

运行程序的真正结果是它引起的副作用; 在Java中获得结果取决于您期望的副作用。 这可能意味着从收集打印到屏幕的输出 , 在工作内存中查找新创建的事实 ,或让Jess程序调用影响外部世界的Java方法 。 在没有看到file.clp的内容的file.clp我无法说出你期望的内容,但是所有列出的内容都包含在Jess手册中; 上面的短语是相应部分的链接。 我很乐意回答您可能有的任何后续问题。