我已经成为一名java开发人员已有几年了,并且听说过你可以用JNI做一些非常有用和强大的东西.我不知道我是不是需要使用它,或者它与我的关系不是很相关; 但我根本不需要触摸它.
我想知道Java这方面的用处是什么.例子很棒.
这非常有用.我可以看到使用JNI的两个主要原因(可能更多).
性能.如果您有一段代码,其中Java Runtime无论出于何种原因都无法明智地降低性能.您可以在本机代码中实现该功能,并从Java调用它.如果您确实需要,可以手动调整实现.这可能是最不常见的原因,但Java通常表现得很好.
访问特定于操作系统的API.这个是个大问题.我有一个案例,我需要用Java做一些事情,但也需要访问Java根本无法提供的东西.在我的例子中,它是UNIX域套接字.由于(通过名称可以看出)它们是特定于UNIX的,因此没有标准的Java方法来使用它们.所以我在C中创建了一个类似于它们的包装器的类,并使用JNI访问它.中提琴,问题解决了.