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

标签 java java-native-interface javah

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

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

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

最佳答案

只是因为他们就是这样写的。我同意,它绝对可以被编写为对源代码进行操作,但这不是他们所做的。

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

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

相关文章:

java - 使用 jni4net 从 .dll 生成 .java

Eclipse 中的 Android 和 Javah

javah -jni <classname> 不起作用?

android - 在 Linux 上使用 javah

java - maven 插件安装 :install-file error

Java 从另一个类更新 TableView 单元格值

android - 编译 ICS/JB 相机应用程序 - native 库 jni-mosaic 错误

java - Spring 启动:运行抛出 ClassNotFoundException

java - ArangoDB java 驱动程序重用对象

android-studio - 构建错误 : depfile has multiple output paths ninja: build stopped: subcommand failed