Ver Mensaje Individual
  #1  
Antiguo 15-10-2018
jmendiusa jmendiusa is offline
Registrado
NULL
 
Registrado: nov 2014
Posts: 1
Reputación: 0
jmendiusa Va por buen camino
añadir Java jar a Delphi

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
Responder Con Cita