java - 为什么 javah 需要字节码来生成 JNI 头文件?

标签 java java-native-interface javah

这是一个让我很困惑的问题。 javah 需要字节码编译类的类路径,以便生成其 header 。

但是有 javac,它可能会从源代码中构建一个 AST,它也可能被 javah 使用。特别是因为 native 方法很容易被发现。

那么,为什么 javah 需要字节码呢?

最佳答案

只是因为他们就是这样写的。我同意,它绝对可以被编写为在源代码上运行,但他们不是那样做的。

关于它的编写方式, 的一些有趣之处在于,如果您有源代码(通过先编译它)或者如果您没有可以使用它来源;这意味着它的完成方式实际上灵活,而不是更少。

关于java - 为什么 javah 需要字节码来生成 JNI 头文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547294/

相关文章:

android - 无法使 javah 与我的 Eclipse Android 项目一起工作

安卓NDK : JavaH cannot find signature for Bitmap

java - 如何减少代码中的重复性?

java - "package"在UML中的含义与Java中的含义相同吗?

java - EJB 3 中的条件查询

java - 如何通过Java连接在Azure Cloud上运行的Dynamics CRM 2016实例?

java - 在 JNI 中,如何根据 IBM 的性能建议缓存类、方法 ID 和字段 ID?

java - 通过 JNI 将 C++ 类返回给 Java

android - 如何在没有用户输入的情况下创建 Android RFCOMM 套接字?

Javah 仍然无法在 OSX/Android Studio 中找到类文件