互操作性 java 和 c++
interoperability java and c++
我想用两种不同的语言 java 和 c++ 编写一个程序,需要在其 c++ 组件和 java component.i 之间进行动态和交互式通信知道有 jni 和 jna用于在 java 中调用本机方法,但我认为此方法不适合我的目的。
例如:假设一个程序的用户界面是用 c++ 编写的,而其他的是 java,我认为这两个组件之间的通信不能通过 jni 和 jna 完成。例如 Open Office 是用 java 和 c++ 编写的。
我搜索了互联网并找到了一些进程间通信的方法
像共享内存、管道、信号、消息传递……但我不知道我需要的是进程间通信。似乎 ipc 是用于在两个不同的进程中通信软件,但我的程序都是一个进程(我说的对吗?!)
所以我的问题是:如何其组件用不同语言编写的程序可以一起通信? 我怎样才能做到这一点?
JNI 正是为您所描述的目的而创建的;为什么不是 "what you need"?
另一种选择:具有不同语言实现的消息代理,例如 http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol
但是由于您强调 延迟,这可能不适合您。
我想用两种不同的语言 java 和 c++ 编写一个程序,需要在其 c++ 组件和 java component.i 之间进行动态和交互式通信知道有 jni 和 jna用于在 java 中调用本机方法,但我认为此方法不适合我的目的。
例如:假设一个程序的用户界面是用 c++ 编写的,而其他的是 java,我认为这两个组件之间的通信不能通过 jni 和 jna 完成。例如 Open Office 是用 java 和 c++ 编写的。 我搜索了互联网并找到了一些进程间通信的方法 像共享内存、管道、信号、消息传递……但我不知道我需要的是进程间通信。似乎 ipc 是用于在两个不同的进程中通信软件,但我的程序都是一个进程(我说的对吗?!)
所以我的问题是:如何其组件用不同语言编写的程序可以一起通信? 我怎样才能做到这一点?
JNI 正是为您所描述的目的而创建的;为什么不是 "what you need"?
另一种选择:具有不同语言实现的消息代理,例如 http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol
但是由于您强调 延迟,这可能不适合您。