gpt4 book ai didi

java - 如何为多个程序共享变量?

转载 作者:行者123 更新时间:2023-11-28 07:16:20 24 4
gpt4 key购买 nike

好吧,标题有点乱

我有什么:我有一个我无法修改的程序 M。我只能在其中编写一些脚本并添加对共享对象 (DLL) 的访问。

现在我想用 M 中的数据做一些疯狂的事情。脚本语言不足以满足我的需要,我不想在 DLL 中做所有事情(C(++) 经验不足,... ).

我的想法是创建一个 DLL(我们称它为桥接器 B)插入 M 中的一些胶水代码中。现在用户应用程序 A(在我的例子中是用 java 编写的)应该连接到 B。现在交互应该可以通过 B 将 M 与 A 连接起来。

我只是试图在 linux 下的示例系统中连接这些东西。在这里,我遇到了一个问题,即图书馆共享所需的信息。

我要测试两个名为 J1 和 J2 的 Java 实例。 J1在SO中注册了一个回调函数。从 J1 (J1 -> SO -> J1) 触发回调一切正常。尝试通过 J2 触发不起作用:J1 似乎未注册。相反,J2 得到了 registeresd。 (见资料)

上网查了一下发现:

  • 在不同进程之间共享内存并非易事。
  • 行为取决于平台。

库测试代码:http://pastebin.com/bFUbwE68
Java代码:http://pastebin.com/zpecisVN

你会怎么做才能让数据从 M 到 A 和一些数据从 A 到 M(从 M 频繁轮询就可以了)?

编辑:长期目标是在虚拟机上运行 M+B,A 通过网络连接。

DLL部分是不是直接在Win下开发,而不是在Linux下再移植比较好?

最佳答案

您可以使用消息传递系统(例如 IBM MQ 系列)在两个应用程序之间发布和接收消息。 JAVA JMS(Java 消息传递系统)将使连接到消息传递提供程序变得非常容易。

关于java - 如何为多个程序共享变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20194625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com