从Java使用C ++代码的示例
该存储库包含三个单独的示例,这些示例从Java代码调用简单的C ++库。
示例库不执行任何操作,只包含一个类MyClass,迫使我们支持C ++(而不仅仅是纯C)。
CMake用于构建此库,因为找到的依赖项超出了我的设计范围。 该项目应该可以移植到所有主要平台。
使用了三种不同的包装器,如下所述。 每个人都实现相同的目标,即使用。
斯威格
这需要SWIG工具: :
SWIG解析C ++头文件,并生成C ++ JNI代码以及Java本机和帮助程序类。
JNA
JNA允许Java代码直接使用C动态库。 因为我们的库实际上是C ++,所以包含了一个小的包装程序,将其包装为C代码。
您将需要JNA jar运行它: :
杰尼
本示例直接使用JNI,无需自动生成。 Java代码中的MyClass类只是将其方法声明为“本机”,它们是由动态库提供的。
1