Java JNI实现

Java JNI实现,java,dll,java-native-interface,Java,Dll,Java Native Interface,我有一个关于JNI实现的问题。 我理解如何在Java中实现它的概念,但是如果你对DLL一无所知,会发生什么呢 如果您只是将DLL作为一个文件,是否有机会知道要实现哪种方法?类似于Java中的反射?如果您只有一个任意DLL,并且希望从Java调用它,则需要: 了解DLL导出的入口点 编写一个或多个本机方法,以及一个或多个调用导出入口点的对应JNI方法 您不能通过JNI直接从Java调用任意DLL中的任意导出函数。[您可能可以使用一些JNA来管理它。]如果您有一个Dll文件,并且希望使用它,但不

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


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

如果您只有一个任意DLL,并且希望从Java调用它,则需要:

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

您不能通过JNI直接从Java调用任意DLL中的任意导出函数。[您可能可以使用一些JNA来管理它。]

如果您有一个Dll文件,并且希望使用它,但不知道实现了什么方法,这没有问题,但问题是Dll文件不是为java本机接口(JNI)编译的。
但是,如果为jni创建了Dll,在了解了可以轻松使用为jni创建的Dll的方法之后,您可以使用依赖项遍历器或Dll导出或使用其他实用程序来找到它的方法。

一般情况下-不,您可以尝试不同的反向工程技术,但没有明显的防弹方法