From a recent mail thread on the commons user list...
I would like to be able to use jsvc on both debian and redhat machines. Ideally, I'd like to be able to compile jsvc once, and use the same binary on both platforms.
The problem I am encountering is that the version of libcap varies across machines.
For example, if I compile jsvc on a RHEL 5.4 machine (which has libcap.so.1), and then attempt to run the same binary on a Debian 6 machine (which has libcap.so.2), then the execution fails with:
jsvc: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory
In order to create a single jsvc executable that works whether or not libcap.so.1 or libcap.so.2 is available at runtime, the jsvc code should use dlopen("libcap.so") and then dlsym all API's instead linking.