views:

175

answers:

1

I'm integrating JNI bindings with a C++ library.

The library follows the usual conventions: the installation root is /usr/local by default and can be modified with the --prefix argument to ./configure; the .a or .so files go in ${prefix}/lib; etc.

The JNI binding produces two new libraries, libfoojni.so (the native part) and libfoo.jar (the Java part).

Under this scheme, what is conventional place to put these files (e.g. ${prefix}/java)?

Is it preferable to allow the user to supply a separate Java root directory (e.g., /usr/share/java)?

Should libfoojni.so go in ${prefix}/lib or in some Java-specific sub-directory?

+1  A: 

When I've done JNI in the past on Linux, I've bundled the .so files with the application in a specific directory for JNI libraries. Then add this to the LD_LIBRARY_PATH environment variable for the JVM instance running the application.

So I would say that there isn't really a convention on this (besides the Linux lib directories for system wide stuff).

Hope that helps.

kipz