java - 使用 JPL 从 Java 重新启动 Prolog 引擎

标签 java prolog jpl

在一个使用 JPL 与 Prolog 交互的 Java 应用程序中,我希望能够使用不同的设置重新启动 Prolog 引擎。例如,我想从 SWI 更改为 YAP(我使用方法 JPL.setNativeLibraryDir 以及我需要使用的正确 native 库的路径来配置使用哪个引擎)。

因此,在更改 JPL 配置后,我尝试停止已经运行的 prolog 引擎,以便随后使用 JPL.init() 重新启动它。

首先我查看了 JPL.halt(),但文档说它已被弃用,并且该方法源代码中的注释说它是无操作的。

随后,我尝试使用“halt”启动查询,但尽管我在控制台中看到“YAP 执行已停止”(如预期),但我的 java 应用程序也已停止(!)。

有没有办法使用 JPL 重新启动逻辑引擎而不终止我的 java 应用程序?

最佳答案

为什么不使用批处理文件来运行脚本。首先,您可以使用/Applications/swi -l your/swi/code ,然后在 prolog 代码中使用halt,以便它在执行后停止。您可以使用运行时方法在 java 中运行批处理文件。

关于java - 使用 JPL 从 Java 重新启动 Prolog 引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10114912/

相关文章:

prolog - 在 Prolog 中存储数据

Prolog编译错误 "Undefined reference to predicate"

erlang - Erlang是约束逻辑编程语言吗?

java - XML 模式继承与 OOP 继承的意义相同吗?

java - 调用时可以指定方法参数的名称吗?

java - 在 java 和 swi 序言之间连接

java - SWI Prolog Java jpl.PrologException 查询不起作用

java - 我应该如何将 OSGi 控制台实现到 Bundle 中?

java - 在 Android 应用程序中读取 10mb 大文本文件