Error al cargar librerÃa java.lang.UnsatisfiedLinkError
Hola:
Al ejecutar el programa que pongo más abajo me aparece la siguiente excepción:
Exception in thread "main" java.lang.UnsatisfiedLinkError: ObtenerApache
at CargaLibreria.ObtenerApache(Native Method)
at Prueba.main(Prueba.java:18)
CÓDIGO:
class CargaLibreria {
public native String ObtenerTomcat();
public native String ObtenerApache();
//public native String ObtenerWINDIR();
public native String ObtenerHOME();
static{
System.loadLibrary("Prueba");
}
}
public class Prueba{
public static void main( String[] args ) {
String temp = new CargaLibreria().ObtenerTomcat();
System.out.println("TOMCAT: "+temp);
temp = new CargaLibreria().ObtenerApache();
System.out.println("APACHE: "+temp);
//temp = new Prueba().ObtenerWINDIR();
//System.out.println("WINDIR: "+temp);
temp = new CargaLibreria().ObtenerHOME();
System.out.println("HOME: "+temp);
String s = System.getProperty("java.home");
System.out.println(s);
}
}
Si en vez de utilizar una clase CargaLibreria, declaro los métodos nativos y cargo la librerÃa en la clase Prueba me funciona. El problema que este código luego lo quiero meter en una clase y al hacerlo con una única clase, cuando llamo al método nativo por ejemplo new NombreClase().Metodo(); me dice que NombreClase no lo encuentra o que no hay un constructor asÃ.
Si sabeis como solucionarlo.
Muchas Gracias.
Salu2
Al ejecutar el programa que pongo más abajo me aparece la siguiente excepción:
Exception in thread "main" java.lang.UnsatisfiedLinkError: ObtenerApache
at CargaLibreria.ObtenerApache(Native Method)
at Prueba.main(Prueba.java:18)
CÓDIGO:
class CargaLibreria {
public native String ObtenerTomcat();
public native String ObtenerApache();
//public native String ObtenerWINDIR();
public native String ObtenerHOME();
static{
System.loadLibrary("Prueba");
}
}
public class Prueba{
public static void main( String[] args ) {
String temp = new CargaLibreria().ObtenerTomcat();
System.out.println("TOMCAT: "+temp);
temp = new CargaLibreria().ObtenerApache();
System.out.println("APACHE: "+temp);
//temp = new Prueba().ObtenerWINDIR();
//System.out.println("WINDIR: "+temp);
temp = new CargaLibreria().ObtenerHOME();
System.out.println("HOME: "+temp);
String s = System.getProperty("java.home");
System.out.println(s);
}
}
Si en vez de utilizar una clase CargaLibreria, declaro los métodos nativos y cargo la librerÃa en la clase Prueba me funciona. El problema que este código luego lo quiero meter en una clase y al hacerlo con una única clase, cuando llamo al método nativo por ejemplo new NombreClase().Metodo(); me dice que NombreClase no lo encuentra o que no hay un constructor asÃ.
Si sabeis como solucionarlo.
Muchas Gracias.
Salu2
