是否有任何同时使用 C++ 和 Java 的程序/软件?
如果是这样,他们如何相互沟通?
请提供理论和程序。
示例:假设我想用 Java 小程序或类似的东西运行 C++ 文件。
Java 原生接口
优点:从 Java 调用 C++ 库的快速方法,反之亦然。
相反:您需要控制库以使其支持 JNI。
从 Java 创建一个进程并通过输入和输出流与其通信
优点:二进制在单独的线程中运行。二进制可以用任何允许基于命令行的输入和输出的编程语言来实现。
相反:数据交换是基于文本的。您仅限于 Taget 应用程序可以通过命令行界面执行的操作。
使两个应用程序通过网络套接字进行通信
优点:应用程序可以在任何支持网络套接字的技术中实现。您可以轻松地将组件移动到另一台机器以提高可伸缩性。营销部门可以称之为“Cloud Powered”。
相反:应用程序必须是基于网络的。即使在本地运行时,绕过操作系统的网络堆栈也会引入额外的延迟。必须采取安全措施,不允许未经授权的客户端连接到充当服务器的组件。