0

我想src使用 java 文件执行位于目录下的构造文件:

engine.batch("src/constructs.clp");

当我通过在 Eclipse 中编译运行程序时,我没有问题。但是,当我通过导出创建 Runnable Jar 时,我的程序无法执行src/constructs.clp文件。

任何帮助将不胜感激。

以下是我收到的错误消息的一部分:

Jess reported an error in routine batch.

      Message: Cannot open file.
        at jess.Batch.findDocument(Unknown Source)
        at jess.Batch.batch(Unknown Source)
        at jess.Batch.batch(Unknown Source)
        at jess.Batch.batch(Unknown Source)
        at jess.Batch.batch(Unknown Source)
        at jess.Rete.batch(Unknown Source)
4

2 回答 2

1

程序无法执行,因为 jar 中没有 src 文件夹。您可以通过任何解压缩软件(如 winrar)打开 jar 来检查。

如果将constructs.clp文件放在使用它的java程序的同一目录中,然后调用engine.batch(“constructs.clp”),该程序应该可以工作。

于 2015-05-18T16:59:26.427 回答
1

据推测,这是因为该src/constructs.clp文件未包含在您的 JAR 中。事实证明,batch如果在文件系统上找不到文件,Jess 中的命令实际上可以从类路径中找到并加载文件。如果您将src/constructs.clp文件打包到 JAR 中,那么该batch命令会找到它,并且您的代码在开发和运行时都将保持不变——这是设计使然。

于 2015-05-19T12:35:10.273 回答