Cargar biblioteca compartida por ruta en tiempo de ejecución

Estoy creando una aplicación Java que utiliza una biblioteca compartida escrita en C ++ y compilada para diferentes sistemas operativos. El problema es que esta biblioteca compartida en sí misma depende de una biblioteca adicional que normalmente encuentra bajo la variable de entorno apropiada PATH, LIBRARY_PATH oLD_LIBRARY_PATH).

Puedo, pero no quiero, establecer estas variables de entorno. Prefiero cargar las bibliotecas compartidas necesarias desde una ruta determinada en tiempo de ejecución, como un complemento. Y no, no quiero ninguna aplicación de inicio que inicie un nuevo proceso con un nuevo entorno. ¿Alguien sabe cómo lograr esto?

Sé que esto debe ser posible, ya que una de las bibliotecas que uso es capaz de cargar sus complementos desde una ruta determinada. Por supuesto, preferiría el código independiente de la plataforma, pero si esto no es posible, las soluciones separadas para Windows, Linux y MacOS también lo harían.

EDITA Debería haber mencionado que la biblioteca compartida que quisiera usar está orientada a objetos, lo que significa que un enlace de funciones individuales no lo hará.

Respuestas a la pregunta(4)

Su respuesta a la pregunta