Jess engine.batch 打jar包失败

Jess engine.batch fails in jar package

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

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)

程序执行失败,因为jar里面没有src文件夹。可以用winrar等解压软件打开jar包查看。

如果您将 constructs.clp 文件放在使用它的 java 程序的同一目录中,然后调用 engine.batch("constructs.clp");

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