SMBJ和Delphi 10.3.3

时间:2020-07-26 08:51:07

标签: android delphi

我想在Android的Delphi应用程序中使用smbj来访问本地网络上Linux机器上的SAMBA共享,但是在尝试使用Java2OP.exe生成网桥时遇到了问题。正在运行:

java2op.exe -jar D:\Delphi\Android\Utils\slf4j-api-1.7.9.jar  -jar D:\Delphi\Android\Utils\bcprov-ext-debug-jdk15on-166.jar -jar D:\Delphi\Android\Utils\mbassador-1.3.2.jar -jar D:\Delphi\Android\Utils\asn-one-0.4.0.jar  -unit Androidapi.JNI.SambaJ

产生错误:

eParsing jar: D:\Delphi\Android\Utils\bcprov-ext-debug-jdk15on-166.jar
Error: (Exception) - class or Interface expected
        > 1:1 "Warning: Binary file META-INF/versions/9/org/bouncycastle/jcajce/spec/DHDomainParameterSpec contains org.bouncycastle.jcajce.spec.DHDomainParameterSpec"

如果我这样更改订单:

java2op.exe -jar D:\Delphi\Android\Utils\slf4j-api-1.7.9.jar  -jar D:\Delphi\Android\Utils\mbassador-1.3.2.jar  -jar D:\Delphi\Android\Utils\bcprov-ext-debug-jdk15on-166.jar -jar D:\Delphi\Android\Utils\asn-one-0.4.0.jar  -unit Androidapi.JNI.SambaJ

我收到错误消息

Parsing jar: D:\Delphi\Android\Utils\mbassador-1.3.2.jar
Error: (Exception) - Generic Type "T" not defined
        > 221:63 "  public net.engio.mbassy.bus.SyncMessageBus$SyncPostCommand(T);"

有人可以告诉我我在做什么错吗?

错误列表:

Androidapi.JNI.SambaJ.pas issues: 
com.hierynomus.asn1.types.ASN1Object: not found 
com.hierynomus.asn1.types.constructed.ASN1TaggedObject: not found 
com.hierynomus.asn1.types.primitive.ASN1ObjectIdentifier: not found 
com.hierynomus.smbj.event.SMBEventBus$1: the parent class (net.engio.mbassy.bus.error.IPublicationErrorHandler) is not found 
com.hierynomus.smbj.transport.tcp.async.AsyncDirectTcpTransport$1: the parent class (java.nio.channels.CompletionHandler) is not found

1 个答案:

答案 0 :(得分:2)

根据manual page,您应在-jar选项之后将罐子指定为以空格分隔的列表。

此外,由于您仅对访问SMBJ本身(而不是其依赖项)感兴趣,因此应使用-classes选项来指定所需的SMBJ软件包。

尝试类似这样的方法(省略路径):

java2op -jar smbj-0.10.0.jar slf4j-api-1.7.9.jar bcprov-ext-debug-jdk15on-166.jar mbassador-1.3.2.jar asn-one-0.4.0.jar
  -classes com.hierynomus.smbj.* com.hierynomus.smbj.share.*
  -unit Androidapi.JNI.SambaJ

编辑

由于Java2OP和SMBJ似乎存在问题,因此您可以尝试使用JCIFS

java2op -jar jcifs-1.3.19.jar -classes jcifs.smb.* -unit Androidapi.JNI.SambaJ