从 CLIPS 调用 Java 应用程序

Calling a Java application from CLIPS

我有一个可运行的 jar:help.jar,我需要从 CLIPS 中的规则调用它,如

(defrule ask-shape
    (not (shape ?))
    => 
    (bind ?answer (ask-question "What is the shape?"))
    (while (eq ?answer help) do
       (help) ;; calling the java function
       (bind ?answer (ask-question "What is the shape?")))
    (assert (shape ?answer)))

我该怎么做?

阅读 CLIPS 高级编程指南,了解有关创建用户定义函数的说明,这些函数将允许您从 CLIPS 程序调用 C 代码(例如在您的 ask-shape 规则中调用“(help)”)。使用搜索引擎并搜索 "how to call Java from C"。你会得到这样的点击率:https://www.codeproject.com/Articles/22881/How-to-Call-Java-Functions-from-C-Using-JNI.

或者,如果您不需要 CLIPS 与您编码的 Java 代码之间的任何交互,请使用您的规则中的系统命令:(system "java -jar help.jar").