Art*_*uro 10 c++ java java-native-interface google-app-engine
我正在开发一个Java应用程序,我需要在其中调用一些C++函数(来自Google Talk库libjingle).目标是在Google App Engine(仅支持Python或Java)上运行它.
我怎样才能做到这一点?
Cos*_*atu 17
您需要native在Java代码中定义要在C++中实现的任何方法,并直接访问本机代码.然后你运行javah你的代码,它将为你生成C头文件,你需要提供C++实现.
您可以像使用任何其他方法一样从Java代码调用本机方法,但它们仍然可以使用C++编写实现并直接与其他任何本机库进行通信.
然后,您需要设置java.library.path系统属性以包含您需要的共享C/C++库:在这种情况下,将需要Google库和您自己的JNI实现库.
如果磁带库通过DLL有C绑定/ SO,我通常喜欢用写在Java包装Java本机访问(JNA)而不是使用的C/C++编写绑定++ Java本地接口(JNI) .前者更容易操作,因为JNI访问Java对象是一个真正的痛苦.但是,使用该API包装C++类并不明显.
您可能还需要查看简化包装器和接口生成器(SWIG)以自动执行此过程的一部分!
| 归档时间: |
|
| 查看次数: |
14510 次 |
| 最近记录: |