¿Qué tipo de un error? Si es una excepción, ¿puedes atraparla?
Otro enfoque sería hacer exactamente una clase responsable de cargar la biblioteca. Puede hacer que la biblioteca se cargue como parte del inicializador estático de la clase y luego cargar la clase == cargando la biblioteca.
EDIT: las javadocs for Runtime.loadLibrary()
(que System.loadLibrary
llamadas) incluso sugiere el enfoque inicializador estático:
Si se van a utilizar métodos nativos en la implementación de una clase, una estrategia estándar es poner el nativo código en un archivo de biblioteca (llámese LibFile) y luego poner un inicializador estático :
static { System.loadLibrary("LibFile"); }
dentro de la declaración de la clase. Cuando se cargue e inicialice la clase, se cargará también la implementación necesaria del código nativo para los métodos nativos .
Los javadocs también dicen:
Si este método se llama más de una vez con el mismo nombre de la biblioteca, se ignoran las llamadas segunda y subsiguientes.
lo que me hace aún más curioso sobre el error que está recibiendo.
supongo que consigue un UnsatisfiedLinkError porque dos cargadores de clases diferentes tratan de cargar la misma biblioteca nativa – jitter
Algunos enlaces pertinentes para el problema http://bugs.sun.com/bugdatabase/view_bug.do?bug_id= 4750956 y http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5075039 – jitter
sí, la fluctuación es correcta, ese es el error que estoy recibiendo, gracias por los enlaces jitter –