A lot of Java libraries are no longer pure Java, they quite often are wrappers around other native libraries, making them available to Java developers. This is all fine, until you run into the problem that libraries cannot be located and your application simply exits (since the naughty library developers are using a hard System.exit(x)
call). The larger your application, then longer it will take to get to the point where it tanks. Sometimes, especially when migrating to a new server, it is useful to just test whether all your native libraries are present and your application will work (well, at least from the native library point of view).
With that in mind, I created a tiny library called loadlib4j, which allows you to quickly test from the command-line, whether libraries are present or not.
You can run it like this to look for the Intel MKL runtime library, which needs to be on LD_LIBRARY_PATH
under Linux (for Windows, the mkl_rt.dll
library must on the PATH
):
java -jar loadlib4j-0.0.1.jar libmkl_rt.so
This will output something like this:
libmkl_rt.so: false libmkl_rt: false mkl_rt: true
The tool automatically tests loading the library without extension and lib
prefix as well. So you don’t have to be too careful. 😉
You can supply as many libraries as arguments to the tool as you wish.