这是一个令我困惑的问题。 javah
需要一个字节码编译类的类路径,以便生成其 header 。
但是 javac
可能会从源代码中构建 AST,它也可能被 javah
使用。特别是因为 native 方法很容易被发现。
那么,为什么 javah
需要字节码呢?
最佳答案
只是因为他们就是这样写的。我同意,它绝对可以被编写为对源代码进行操作,但这不是他们所做的。
关于它的编写方式的一些有趣的事情是,如果您有源代码(首先编译它)或者没有源代码,您可以使用它。来源;这意味着它的完成方式实际上更加灵活,而不是更少。
关于java - 为什么 javah 需要字节码来生成 JNI header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547294/