As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。




7年前关闭。




我从事Java开发已经有两年了,听说您可以使用JNI做一些非常有用和强大的事情。我不知道我是否只是不需要使用它,或者它是否与我无关。但我根本不必触摸它。

我想知道Java这方面的用处是什么。例子会很棒。

最佳答案

这是非常有用的。我可以看到使用JNI的两个主要原因(可能还有更多)。

  • 性能。如果您有一段代码,无论出于何种原因,Java Runtime都无法降低其性能。您可以用本机代码实现该功能,然后从Java调用它。这使您可以根据需要手动调整实现。不过,这可能是最不常见的原因,Java通常表现良好。
  • 访问操作系统特定的API。这是一个大家伙。我遇到过这样的情况,我需要用Java做某事,但还需要访问Java根本无法提供的东西。就我而言,这是UNIX域套接字。由于(如您所名),它们是UNIX特定的,因此没有标准的Java使用方式。因此,我制作了一个类,充当C语言中的包装器,并使用JNI访问了它。中提琴,问题解决了。
  • 07-24 09:45
    查看更多