编辑:清晰度 - 主要.pl文件加载,它已被告知加载哪些子文件不加载。 (所有咨询(' subfile.pl')。)
我有一个使用tuProlog的Java项目。它将理论称为:
Theory theory = new Theory(":-consult('main.pl').");
engine.setTheory(theory);
这是根据手册。 file.pl与其他prolog文件存在于同一文件夹中。 在main.pl里面,我还有进一步的
consult('otherfile.pl').
加载其他文件的语句(多个)。
文件夹结构为:
src/main.pl
src/Prolog_Files/otherfile.pl (multiple)
src/main/java/JavaStuff
我无法让引擎加载我已经告诉它在主文件内部查询的理论.pl
我想知道是否有关于使用tuProlog的事情我不理解?
理论在加载时起作用:
Theory theory = new Theory(new FileInputStream(url_of_file)).
然而,这在构建jar时会引起我的问题,因为它无法找到文件位置。
我是否正在尝试正确加载文件?我的主要.pl文件中的咨询是否正确?
有人可以发一个如果不这样做的例子吗?手册并没有详细阐述这个主题。
由于
答案 0 :(得分:1)
本手册的部分内容略显过时 - 它表示使用consult / 1,而其他地方则表示不推荐使用consult / 1,而include / 1则是替代品。
其次,当使用2p.jar时,它会从Project根目录中读取Prolog文件作为其根。创建jar时,2p.jar不能在项目jar中。它们应该在相对文件夹中,并且2p.jar以2p.jar的位置读取Prolog文件作为root。它似乎无法读入项目jar内部。
希望这很清楚!