The developer uses a Java interface to describe functions and structures in the target native library.
This makes it quite easy to take advantage of native platform features without incurring the high development overhead of configuring and building JNI code.
It is also possible to tweak and recompile the native build configurations to make it work on most other platforms that run Java.
The following table shows an overview of types mapping between Java and native code and supported by the JNA library.
Note: The following code is portable and works the same on Windows and POSIX (Linux / Unix / macOS) platforms.