I am using JNAerator to generate a single jar file I can include in a project, and I'd like to support the dynamic libraries for each operating system and arch all in this single jar.
In fiddling with JNAerator so far, I've been able to include a single dynamic library using a command like the following:
java -jar jnaerator.jar test.dll test.h [...] -mode StandaloneJar
However, this only packages test.dll, while I have dynamic libraries for multiple systems (test_win32.dll, test_win64.dll, libtest_mac.dylib, libtest_linux_x86.so, and libtest_linux_amd64.so) which I would like to all have packaged into and supported by one jar.
Is there any way to do this "all-in-one" approach with one run of JNAerator, or must I generate a different jar file for each platform?
JNAerator has an
-archoption designed just for that, although the doc is currently terribly vague about it:This will bundle the libraries under the format expected by BridJ (see its wiki page about embedded binaries):
unzip -l test.jargives:The library names are currently expected to be exactly
lib<name>.(so|dylib)or<name>.dllfor every platform, although that could easily be fixed if you ask.(note: I'm the author of BridJ & JNAerator)