从 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").
我有一个可运行的 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").