0

当我们可以用JAVA开发整个应用程序时,为什么还需要JNI来访问native。

问候, 苏贾尼安

4

3 回答 3

0

当我们可以用JAVA开发整个应用程序时,为什么还需要JNI来访问native。

如果你由此断言你总是可以用 Java 开发整个应用程序,那你就错了。您不能总是这样做,而 JNI 可以弥补这一差距。

另一方面,如果您的意思是“如果”而不是“何时”,那么答案是在这些情况下您不需要 JNI。

于 2012-04-10T03:52:22.413 回答
0

当您无法用 Java 开发整个应用程序时,就需要 JNI。例如,当存在仅在 C 中可用的遗留库或需要与系统驱动程序通信时,可能会发生这种情况。如果你可以用纯 Java 编写整个应用程序,那么你当然不需要 JNI。

于 2012-04-09T12:19:40.943 回答
0

当您可以用纯 Java 开发整个应用程序时,您就不需要 JNI。这也是首选方式。

然而:

  • 您可能想调用现有的本机代码库。可以用 Java 重写它们,但这可能需要大量工作(在端口中以及稍后维护两个版本)

  • 您可能需要编写一些低级代码以直接与硬件/操作系统对话,而 JVM 不允许您这样做

于 2012-04-09T12:20:48.480 回答