Delphi和jar库

时间:2018-10-16 08:00:55

标签: java android delphi

我正在用Delphi 10.2 for Android创建一个应用程序。此应用程序必须从Windows服务器获取一些文件。我进行了一些研究,似乎应该使用jcifs-1.3.18.jar Java库。 在 http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_a_Custom_Set_of_Java_Libraries_In_Your_RAD_Studio_Android_Apps

出现开始使用jar库的指示。

这是我第一次使用jar和Delphi库,所以我在JAVA中做了一个测试jar:

package pruebaDelphi;
public class Inicio {
    public int suma(){      
        return 66;
    }
}

Y用JAVA2OP制成.jar,.pas,将.jar添加到delphi库中,此代码返回预期的66:

procedure TForm1.Button1Click(Sender: TObject);
var
  pr : TJInicio;
  pr1: JInicio;
begin
  pr1 := pr.JavaClass.Init;
  showmessage(inttoStr(pr1.suma()));
end

但是问题始于JAVA中的下一个代码:

public String copiarFicheros(){
    String url = "smb://ip";
    NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "user", "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; 
}

此代码在JAVA上有效。我在Delphi中添加了jcifs jar,但是当我这样做时:

ShowMessage(JStringToString(pr1.copiarFicheros));

返回错误:

  

java.lang.ExceptionInInitializerError

然后单击下一步:

  

java.lang.NoClassDefFoundError:jcifs / UniAddress。

有人可以帮助我吗? 谢谢您的时间!

顺便说一句:我知道我可以使用其他替代方法来复制文件(云,FTP服务器等),但是对我来说重要的是,我要学习如何在RAD Studio应用程序中使用自己的或第三方Java库。

乔恩

0 个答案:

没有答案