将AnyLogic里的工程打出的Jar包整合到SpringBoot工程中
简述
在学习anylogic的过程中,我需要实现将anylogic里编译出的jar文件在SpringBoot中使用。也就是通过接口调用anylogic引擎去执行仿真操作。我的实现步骤如下:
1、anyLogic 生成Jar包
在完成anylogic中的模型建立并调试完毕后。鼠标 右击项目文件夹 -> 选择导出 -> 选择独立java应用程序(需要专业版才可以)。
导出的jar包文件,解压后文件目录如下图:
2、在SpringBoot工程中引入Jar包
- 打开需要引入jar的工程,在工程的resources文件夹下建一个lib文件夹;
- 将解压后的jar文件夹放到所建的lib文件夹下
- 点击编译器左上File按钮,选择Project Structure 如下图:
- 接着选择Libraries, 点右侧“+” 选java。(建议建立三个,我建立了com.anylogic.engine; common-codec-1.0;model;)
- 在每个建立好的资源包下导入jar文件夹下的Jar包,如图(具体导在那个资源包下可以自行分配)
3、anylogic引擎调用
按照上述步骤完成jar导入后即可在SpringBoot 编写对引擎内部的调用。
具体调用方式可参考以下代码:
public void startAnyLogicSimulation(String p) {
// 创建仿真对象,加载引擎
final Simulation sim = new Simulation();
Engine engine = sim.getEngine();
Main main = new Main(engine, null, null);
main.p = p; // 参数赋值
log.info("engine start");
// 设置引擎启动停止时间 单位:s
engine.setStartTime(0.0);
engine.setStopTime(600.0);
engine.start(main);
engine.runFast();
}
其中对于用 start() runFast() run()方法去启动引擎的区别,以及各自的特点会在后续的文章中做详细的记录。
注意: 在向工程导入jar后对SpringBoot工程进行打包式若出现anylogic 里jar包找不到的情况时需要检查pom.xml 文件中依赖的配置有没有问题。
若根据上述步骤无法解决jar包导入及引擎启动的问题,可以私信我,我们一起学习。