Existe dos formas diferentes de cargar una libereria nativa desde un programa java en ejecucion:
- System.loadLibrary(String)
- System.load(String).
El metodo System.loadLibrary permite cargar una libreria desde la ruta por defecto, en cambio System.loadLibrary permite cargar una libreria desde cualquier lado utilizando la ruta absoluta a la DLL.
Cuando usamos System.loadLibrary, lo único que hace falta especificar el nombre del archivo DLL que queremos cargar. La JVM buscará la DLL especificada en "Java library path". Este camino esta dado por la propiedad: java.library.path system property (Y puede alterarce al utilizar el comando java.exe usando la opcion -D). Por defecto este valor esta relacionado con el Windows path.
Tener en cuenta que el directorio actual es agregado automaticamente al path, por esta razon no es necesario configurar nada siempre y cuando la DLL se encuentre en el directorio de trabajo actual.
Para poder hacer que la JVM cargue la libreria, necesitamos modificar nuestro código Java de la siguiente forma (El nombre de la DLL a cargar es "HelloWorld" y se encuentra en el path):
package example.jni;
public class HelloWorld {
private static native void writeHelloWorldToStdout();
public static void main(String[] args) {
System.loadLibrary("HelloWorld");
writeHelloWorldToStdout();
}
}
La JVM se encarga de resolver la extension dependiendo del sistema operativo.
Una vez realizados los pasos anteriores ya habremos cargado la DLL y seremos capas de usarla.
2 comentarios:
Podrias hacerme el favor de colocar un ejemplo de como seria la forma de utilizar un metodo de la DLL que se cargo.
Saludos
si porfa
aiuuuudaaaaaaaaaaaaaaaa
queremos ejemplos
Publicar un comentario