Java应用程序与C++应用程序之间的通信
Communication between Java Application and C++ Application
我正在尝试为Java应用程序编写一个插件。插件应该能够告诉Java应用程序已经识别出新的事件(Observer Design Pattern、Polling……这不是重点)。问题是,事件是来自Microsoft Kinect控制器的跟踪手势(我使用C++和Microsoft Kinect SDK,因为我必须这样做)。这意味着我必须在Java应用程序和Kinect应用程序之间进行通信。我想到了一种适配器设计模式,Java应用程序"包括"接口(c++头文件、dll等)。首先我想到了JNI,但后来我必须编写一个dll,用于应用程序的两端,对吧?我想到的另一件事是通过UDP之类的协议(或者更轻量级的协议?)提供手势数据。我听说的最后一件事是编写一个COM+程序集。。。但老实说,我对COM+的了解相当少。
JAVA APPLICATION << ----- ??? ----- >> KINECT APPLICATION
也许你应该看看谷歌的协议缓冲区。
既然你在考虑JNI。我建议您参考本IBM教程。
JNI允许java应用程序调用c/c++方法,反之亦然。
看看这个问题是,如果您是从c++调用java。
我发现了一些示例,如here、here和here,它们建议您使用共享内存结构或使用套接字。
我认为在这种情况下,让你的程序通过套接字进行通信是最好的主意,因为你的应用程序不会那么紧密地耦合,所以你只需要公开一个IP、一个端口和一组命令。
根据这一点,在Kinect上创建C++服务器似乎是可能的,但除此之外,我不能说太多,因为我从未参与过Kinect相关的项目。
JNI(Java Native Interface)允许Java应用程序调用c/c++方法。
所有这些都要求我们有一种通信方式(集成Java使用C++)。这是由JNI(Java Native接口)。
有关使用JNI和从Java调用本机方法的实际示例,请参阅InfoWorld的这篇文章。
- 如何使用winsock在c++应用程序中实现安全套接字通信
- 使用命名管道在 C# 和C++应用程序之间进行持续通信
- C# 和C++应用程序之间的通信
- 如何通过具有通信行参数的procdump启动Windows应用程序?
- Electron应用程序和Win32本机桌面应用程序之间的进程间通信
- 一个使用QtUdpSocket的简单通信c / s应用程序
- 如何实现MATLAB和单独的C++应用程序之间的通信
- VC++和Qt应用程序之间使用共享内存进行通信
- C 和现有PHP应用程序之间的通信
- 使 .Net 3.5 应用程序与 .Net 4.0 应用程序通信的最稳定方法
- 如何通过套接字在PHP和C++应用程序之间进行通信
- 如何在C++服务器应用程序和django web应用程序之间进行通信
- 我可以使用管道与现有应用程序通信吗?
- 通过网络在应用程序之间进行通信
- PHP 脚本与应用程序通信的最佳方法
- 如何使用户级应用程序通过管道与根级应用程序通信
- 构建与 Android 应用程序通信的C++程序的最佳方式
- 获取用于与C++应用程序通信的网页
- 我需要一个Windows 8 WinRT应用程序来与用C编写的独立应用程序通信
- 我如何让我的Qt控制台应用程序与另一个Qt gui应用程序通信