0

我正在尝试让 Java 和 Prolog 一起工作(在 OS X 10.11.1 上)。我想要的只是从 Java 输入我的 Prolog 查询。

当我运行 Java 代码时

PrologProcess process = Connector.newPrologProcess();
process.queryOnce(query);

我收到以下错误:

java.io.IOException: Cannot run program "swipl": error=2, No such file                  or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
...

首先,我将条目添加到我的 PATH 变量中,因为我认为 SWIProlog 无法找到,但它没有显示任何效果。我的 PATH 包含:

/opt/local/lib/swipl-7.2.3/
/opt/local/lib/swipl-7.2.3/bin
/opt/local/lib/swipl-7.2.3/bin/x86_64-darwin15.0.0/swipl
/opt/local/lib/swipl-7.2.3/bin/swipl.home
/Applications/SWI-Prolog.app/Contents/swipl/lib/jpl.jar
/Applications/SWI-Prolog.app/Contents/swipl/bin/x86_64-       darwin15.0.0/swipl
/Applications/SWI-Prolog.app/Contents/swipl/
/Applications/SWI-Prolog.app/Contents/

希望有人知道怎么回事。有任何想法吗?

4

1 回答 1

2

您的一些PATH条目毫无意义。试试 Terminal.app 窗口:

$ which swipl

这将告诉swipl可执行文件的位置。您似乎还安装了SWI-Prolog.appGUI 应用程序,可执行文件的正确路径是:

/Applications/SWI-Prolog.app/Contents/MacOS/

另请注意,Mac OS X GUI 应用程序不会在 shell 之上运行,因此不会继承用于命令行命令的环境变量定义。但是 Eclipse 允许在其首选项面板之一中定义环境变量。

于 2015-11-24T23:04:01.907 回答