0

为什么在使用 Eclipse 时文件运行没有问题,但是当我创建同一程序的 jar 文件时,我无法在我的电脑上本地运行它?

这是我得到的错误,其中 a 是输入,而 signal.pl 是我在桌面中传递的文件:

C:\Users\HP\Desktop>java -jar ADE2.jar a signal.pl
Exception in thread "main" org.jpl7.PrologException: PrologException: error(existence_error(source_sink, a), _0)
        at org.jpl7.Query.fetchNextSolution(Query.java:438)
        at org.jpl7.Query.hasMoreSolutions(Query.java:342)
        at org.jpl7.Query.oneSolution(Query.java:872)
        at org.jpl7.Query.hasSolution(Query.java:950)
        at ADE.executeGorgias(ADE.java:19)
        at ADE.main(ADE.java:41)
4

1 回答 1

0

我假设您在两个场景中有两个不同的工作目录。

SWI-Prologworking_directory/2working_directory(-Old, +New).

正如文档所述:

Old与当前工作目录的绝对路径统一,并将工作目录更改为New. 使用模式working_directory(CWD, CWD)获取当前目录。

因此,我建议working_directory(CWD, CWD)在这两种情况下进行测试,看看您的工作目录是否不同,这可能会导致在使用相对路径时出现问题。

编辑:您还可以使用absolute_file_name/3以确保您的“Eclipse 用例”和“jar 用例”以相同的方式解析文件。

于 2021-06-16T09:35:31.643 回答