繁体   English   中英

Java Application和C ++ Application之间的通信

[英]Communication between Java Application and C++ Application

我正在尝试为Java应用程序编写一个插件。 该插件应该能够告诉Java应用程序已经识别出新事件(观察者设计模式,轮询......这不是重点)。 问题是事件是来自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,也要看看这个问题

我找到了一些例子,例如这里这里这里建议你使用共享内存结构或者使用套接字。

我认为在这种情况下,让你的程序通过套接字进行通信是最好的主意,因为你的应用程序不会紧密耦合,所以你只需要暴露一个IP,一个端口和一组命令。

根据一点,似乎可以在Kinect上创建一个C ++服务器,但除此之外我不能说太多,因为我从未参与过Kinect相关项目。

JNI (Java Native Interface) allows the java application to call c/c++ 
methods.

All this requires that we have a means of communicating (Integrating Java 
with C++) between Java and C++. This is provided by the JNI (Java Native 
Interface).

For a practical example of using the JNI.

Calling native methods from Java see this url
https://www.javaworld.com/article/2077513/learn-java/java-tip-17--integrating-java-with-c--.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM