Java、JNI 和 C++ : How do I generate a header file from native method declarations?

标签 java c++ java-native-interface

Java、JNI 和 C++:如何从 native 方法声明生成头文件?

我有一个 Java 项目,它通过 JNI 与 C++ 代码通信。 现在的挑战是我需要添加新方法。我首先声明 java代码中的本地方法。现在我需要重新生成头文件 对于 JNI 方法。我在 Eclipse 中工作,不知道该怎么做。

最佳答案

这不是 Eclipse 内置的,但很容易做到:

  1. 转到 File » New... » XML File 在您的项目中创建一个 Ant 文件(代码如下)。
  2. 转到 Project » Properties » Builders » New... » Ant Builder 将 Ant 文件添加为构建步骤。将刷新设置为“项目”,以便生成的文件显示在项目中。请务必将构建步骤放在 Java Builder 步骤之后,因为 javah 读取已编译的 class 文件。

现在,无论何时更改 Java 代码,您都将始终拥有最新的头文件。您只需在 Ant 文件中列出适用的类即可。

<?xml version="1.0" encoding="UTF-8"?>
<project name="javah">
    <mkdir dir="javah" />

    <javah classpath="bin" destdir="javah">
        <!-- list classes here -->
        <class name="com.example.MyClass" />
    </javah>
</project>

您可以在 Ant 脚本中获得更复杂的东西,但以上就足够了。

关于Java、JNI 和 C++ : How do I generate a header file from native method declarations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17859969/

相关文章:

c++ - 实现自定义 Postgres 索引作为扩展

java - 测试类无法从 TestSuite 中的循环正常运行...在 seleniumRC+JUNIT 中

c++ - 如何在 QComboBox 上设置不可选择的默认文本?

java - 类型错误 : Cannot read property 'initLazy' of undefined?

c++ - 多线程 gtkmm 应用程序的最简单示例

java - 如何使用java监控窗口进程?

Android - 在使用 WebRTC 发送到 Wowza Streaming Engine 之前旋转视频帧

java - libjvm.so : to link or not to link?

java - JBehave 转换器支持泛型吗?

java - 泛型 : suggest correct syntax