Buenos días a todos,
estoy creando una aplicación en Delphi 10.2 par Android. Esta aplicación debe coger unos ficheros de un servidor windows. He investigado un poco y parece que debo usar la librería jcifs-1.3.18.jar de Java.
En la página
docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_a_Custom_Set_of_Java_Libraries_In_Your_RAD_Studio_Android_Apps (lo siento, no me deja añadir la etiqueta URL)
aparecen las indicaciones para empezar a usar librerías jar.
Como nunca he usado una librería de Java en Delphi, antes de meterme en harina he creado una tonta librería con Eclipse:
Código:
package pruebaDelphi;
public class Inicio {
public int suma(){
return 66;
}
}
He creado el .jar, el .pas con JAVA2OP, añadido el .jar a las librerías y con el siguiente código me devuelve el 66 esperado:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
pr : TJInicio;
pr1: JInicio;
begin
pr1 := pr.JavaClass.Init;
showmessage(inttoStr(pr1.suma()));
end
El problema está cuando añado al mismo código JAVA:
Código:
public String copiarFicheros(){
String url = "smb://nombre de máquina";
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "usuario", "password");
SmbFile dir = null;
String resultado = "KO";
try {
dir = new SmbFile(url, auth);
} catch (MalformedURLException e) {
//e.printStackTrace();
}
try {
for (SmbFile f : dir.listFiles())
{
if (f.getName().equals("ant.OLD")){
resultado = "OK";
}
//System.out.println(f.getName());
}
} catch (SmbException e) {
//e.printStackTrace();
}
return resultado;
}
Este código funciona correctamente en Java. He añadido la librería jcifs a Delphi, pero cuando lo llamo con
Código:
ShowMessage(JStringToString(pr1.copiarFicheros));
me da el error:
java.lang.ExceptionInInitializerError y cuando vuelvo a clickar en el botón
java.lang.NoClassDefFoundError: jcifs/UniAddress.
Está claro que me he perdido algo, pero no sé el qué.
¿Alguien me puede echar una mano?
Muchas gracias por vuestro tiempo.
Jon