Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   añadir Java jar a Delphi (https://www.clubdelphi.com/foros/showthread.php?t=93483)

jmendiusa 15-10-2018 11:32:28

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


La franja horaria es GMT +2. Ahora son las 18:55:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi