使用JNI从java程序中调用C++函数

Call C++ functions from java program using JNI

本文关键字:调用 C++ 函数 程序 JNI java 使用      更新时间:2023-10-16

我有一个使用opencv库开发的c++代码,用于提取视觉单词包。我的代码基于以下方法:

void extractTrainingVocabulary (const path& basepath)(使用提升库的路径)

void extractBOWDescriptor(const path& basepath, Mat& descriptors)

现在,我需要使用JNI 从java程序中调用这些方法

我应该如何编写Java本机方法?它的参数是什么?

我尝试:

public native void extractTrainingVocabulary ( String basepath)

public native void extractBOWDescriptor (String basepath , Mat descriptors)

但是当我运行javah时,我得到了一个错误"class not Mat found"

我建议您看看OpenCV的Java API。您可以在库的JNI包装器中使用它们的类型。或者,甚至用Java重写您的库。