在一个使用JPL与Prolog进行交互的java应用程序中,我希望能够使用不同的设置重新启动prolog引擎。作为示例,我想从SWI更改为YAP (我通过我需要使用的正确本机库的路径,通过JPL.setNativeLibraryDir方法配置了哪个引擎来使用它)。
因此,在更改了JPL配置之后,我试图停止已经在运行的prolog引擎,以便稍后使用JPL.init()重新启动它。
首先,我看了一下JPL.halt(),但文档显示它已被弃用,并且该方法源代码中的注释说明它是no-op。
之后,我尝试使用'halt‘启动一个查询,但是尽管我在控制台中看到"YAP execution halted“,但我的java应用程序也被停止了(!)。
有没有办法用JPL重启逻辑引擎而不杀死我的java应用程序?
发布于 2012-08-16 01:26:42
为什么不使用批处理文件来运行脚本。首先,您可以让/Applications/swi停止您的/swi/代码,然后在您的-l代码中使用halt,以便它在执行后停止。您可以使用运行时方法在java中运行批处理文件。
https://stackoverflow.com/questions/10114912
复制相似问题