我有一个关于两个Java程序的通信的问题,一个嵌入另一个。
嵌入式程序是CPLEX线性程序(Java SE + CPLEX libs),它计算资源,而另一个根应用程序是仿真软件(AnyLogic)。现在的想法是模拟应该使用线性程序计算的资源。
我现在希望模拟调用线性程序,然后计算资源并将它们作为数组或对象传回,然后继续模拟。
Simulation (AnyLogic) ----> Linear Program (CPLEX)
<--------(VALUES?)--------|
我的问题是“交出”,返回值(args)缝不够。我怎么能这样做?
目前我使用存储值的文本文件。我读到了关于RMI和套接字但不知道这是不是一个好主意。
任何帮助表示赞赏!谢谢。
答案 0 :(得分:0)
这样做的一种方法是使用Java Process
启动CPLEX程序。 The first answer to this question详细说明了如何从已启动的Process
获取反馈(以及如何启动它)。具体来说,它显示了如何启动打印其输出的Process
,随后由启动程序读取。我想您的CPLEX程序可以打印出任何相关结果,然后AnyLogic仿真可以通过所描述的机制获取。