![](/img/trans.png)
[英]Sending string from Java (PC) to C (Raspberry Pi) via Socket
[英]Calling Java class from C++ code on Raspberry Pi
我正在Raspberry Pi上執行C ++程序,並且想從C ++程序中調用Java類。
我的主程序是用C ++編寫的,這是我的應用程序的驅動程序,但是,我試圖通過我的程序與設備連接,並且通信API用Java編寫。 我不想重寫整個API,所以我的主要目標是從C ++ main調用API。
有人知道這怎么可能嗎? 我聽說JNI是一種方法,但是我不確定如何在RPI上完成此操作。
可以使用JNI完成。 碰巧的是,我在GitHub上有一個項目,在那里我一直在為Java開發C ++包裝器生成器。
https://github.com/wshackle/java4cpp
即使您不想使用它,查看一些代碼或示例也可能很有用。
要在linux上編譯JNI程序(盡管我從未使用過Rasberry PI,但我認為它也適用於Rasberry PI),我將使用以下形式的命令:
export JAVA_HOME=/usr/local/jdk1.8.0_60
g++ -I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/linux -L ${JAVA_HOME}/jre/lib/i386/server/ -Wl,--rpath ${JAVA_HOME}/jre/lib/i386/server/ cpplussource.cpp -ljvm -o newprogram
我不確定Rasberry-PI使用哪種處理器。 i386可能會替換為其他東西。 您的JDK可能帶有客戶機目錄而不是服務器目錄。
有關C ++編譯器選項的更多信息,請訪問:
有關在以下位置調用虛擬機的更多信息:
https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/invocation.html#overview
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.