0

我有一个来自库的现有 .c 和 .h 文件。我希望能够从 Java 调用 c 文件中包含的函数。我知道这需要 JNI,并且我非常了解如何修改 .c 和 .h 文件以使它们与 JNI 一起使用。我不完全理解如何做,或者如果它甚至是 JNI 的目的,是制作一个简单的 JNI 库,然后我可以将其包装到另一个 java 应用程序中。我想创建界面;将 C API 扩展为 Java,以便我可以在那里使用它。最终结果将类似于: someCmethodInSomeJNILibrary() 位于某种 jnilib 文件中。

提前致谢

4

1 回答 1

1

首先,您可能希望考虑使用 JNA。JNA 将允许您在不编写额外本机代码的情况下进行交互。如果您已经有一个库并且不想构建另一个库,这将特别方便。

使用 JNI,所需的步骤包括:

  • 设计用于与 C 代码交互的本地方法的 Java API。
  • 使用 javah 为 Java 本机方法生成 C 存根。
  • 将 C 存根粘贴到您的 C 代码中。
  • 生成包含本机方法函数和原始 C 代码的动态/共享库。
  • 在 Java 中加载该共享库。

更多详细信息可以在 JNI 文档中的“编译、加载和链接本机方法”中找到。

于 2013-06-27T19:27:48.553 回答