簡體   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