JNI实施

时间:2015-03-19 00:22:26

标签: java dll java-native-interface

我有一个关于JNI实施的问题。 我理解了如何在Java中实现它的概念,但是如果你对DLL没有任何了解会发生什么。

如果您只将DLL作为文件,是否有机会知道要实现哪种方法?像Java中的反射一样?

2 个答案:

答案 0 :(得分:0)

如果你只有一个任意的DLL而你想从Java调用它,你需要:

  • 了解DLL导出的入口点
  • 编写一个或多个本机方法,以及一个或多个调用导出入口点的相应JNI方法。

无法做的是通过JNI直接从Java调用任意DLL中的任意导出函数。 [你或许可以用一些JNA来管理它。]

答案 1 :(得分:0)

如果你有一个Dll文件并且你想要使用它但你不知道实现了什么方法,那没问题,但问题是没有为java本机接口(JNI)编译Dll文件。 但是如果为jni创建了Dll,你可以在知道方法之后使用依赖性walker或dll导出或使用其他实用程序找到它的方法,你可以轻松地使用为jni创建的dll。