Assume a Java source code uses System.loadLibrary("lib-name") to load a library lib-name. Further, assume that multiple copies of lib-name exist throughout the system.
Question: is there a way to know the path of the lib-name that the jvm loaded? I’m looking for something like -verbose:class.
Thanks.
Advertisement
Answer
On Unix style OS the fully qualified paths for libraries should be visible in lsof | grep {yourjvmpid}.
The lsof output will print a lot of information on open file handles – it is also very helpful to track bad resource handling in application code – and with suitable additional | grep you should narrow down the information for various .so files or the library path you are searching for.
Use jps or ps -ef to track down the appropriate pid.