I have a project that currently executes many external programs using java.lang.Process
. Assuming that their functionality is also available in native library form, what would be the advantages of executing said library functions using JNA instead?
The process executions are fairly heavy - they take a few seconds to complete. Am I correct in thinking that performance gains would be minimal?
You might find this helpful: Execute native code via JNI/DLL or EXE?
We went with native execution. As per the accepted answer, there is less risk of memory leaks and it's easy to restart the native process as needed.