Throughout the book, we advised using various Java libraries— the standard Java Class Library (JCL) and external Java libraries that help to improve code quality and make the development time shorter. But there are also non-Java external libraries that may be needed for your application. Such a need has increased recently with the growing demand for using machine learning algorithms for data processing. The porting of these algorithms to Java does not always keep up with the latest achievements in the area of recognizing faces, classifying human actions in videos, and tracking camera movements, for example.
The existing mechanism of utilizing the libraries written in different languages is Java Native Interface (JNI), Java Native Access (JNA), and Java Native Runtime (JNR). Despite all these facilities, accessing the native code (the code in other languages...