我正在努力让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,但它没有显示效果。 我的路径包含:
/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/
希望有人知道最新情况。 有什么想法吗?
答案 0 :(得分:1)
您的几个PATH
条目毫无意义。试试Terminal.app窗口:
$ which swipl
这将告诉swipl
可执行文件的位置。由于您似乎还安装了SWI-Prolog.app
GUI应用程序,因此可执行文件的正确路径为:
/Applications/SWI-Prolog.app/Contents/MacOS/
另请注意,Mac OS X GUI应用程序不在shell之上运行,因此不会继承用于命令行命令的环境变量定义。但Eclipse允许在其首选项面板之一中定义环境变量。