我想使用以下命令从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)
答案 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
命令将找到它,并且您的代码在开发和运行时都将保持不变 - 这是设计的。