Java Native Access (JNA) is A small set of Java language utilities and conventions for dynamically accessing native libraries (for example, .dll's on Windows or .so's on Solaris) on any supported platform without writing anything but Java code—no JNI or native code is required, and access is dynamic at runtime without code generation.