Jess engine.batch在jar包中失败

时间:2015-05-18 16:41:56

标签: java jess

我想使用以下命令从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)

2 个答案:

答案 0 :(得分:1)

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

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

,该程序应该可以工作。

答案 1 :(得分:1)

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