簡體   English   中英

在Raspberry Pi上從C ++代碼調用Java類

[英]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/design.html#compiling_loading_and_linking_native_methods

有關在以下位置調用虛擬機的更多信息:

https://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/invocation.html#overview

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM