java - Java 和 C++ 的互操作性

标签 java c++ interop language-interoperability

<分区>

我想用两种不同的语言 java 和 c++ 编写一个程序,需要在其 c++ 组件和 java 组件之间进行动态和交互式通信。我知道有 jni 和 jna 用于在 java 中调用 native 方法,但我不认为这个方法适合我的目的。

例如:说一个程序,它的用户界面是用 c++ 编写的,其他的是用 java 编写的,我认为这两个组件之间的通信不能通过 jni 和 jna 来完成。例如 Open Office 是用 java 和 c++ 编写的。 我搜索了互联网并找到了一些进程间通信的方法 像共享内存、管道、信号、消息传递……但我不知道我需要的是进程间通信。似乎 ipc 是用于在两个不同的进程中通信软件,但我的程序都是一个进程(我说的对吗?!)

所以我的问题是:如何其组件用不同语言编写的程序一起通信?以及我怎样才能实现这一点?

最佳答案

JNI 正是为您所描述的目的而创建的;为什么它不是“您需要的”?

另一种选择:具有不同语言实现的消息代理,例如 http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol

但是由于您强调延迟,这可能不适合您。

关于java - Java 和 C++ 的互操作性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29215215/

相关文章:

java - 更改 Android Listview ArrayAdapter 中最后一项的布局

java - 甲骨文认证(OCA JP-1z0 803 和 OCPJP-1z0 804)

c++ - 通过引用问题 C++

java - 通过 Web 服务将 .NET 应用程序与 Java/J2EE 应用程序集成

java - 在 Oracle JDBC 中是否可以批处理存储过程调用并检索 OUT 参数?

java - 如何求一个序列中所有数字的阶乘之和?

c++ - wsprintf() 的安全版本?

C++ - 构造 ICMP 数据包时出现访问冲突

interface - 当可调用是 Clojure 函数时,从 ScheduledFutureTask 获取 nil 而不是返回值

.NET错误: The dependency 'Microsoft.Office.Interop.Excel' could not be found