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