【问题标题】:Calling Java library (JAR) from VBA/VBScript/Visual Basic Classic从 VBA/VBScript/Visual Basic Classic 调用 Java 库 (JAR)
【发布时间】:2011-03-14 10:26:57
【问题描述】:

有jar库

本地 C++ 端口尚不可用(作为 DLL)

我需要打电话

我有 3 种可能性:

1) 等待本机端口准备好 2) 通过 brigde (?) 使用 VB 中的 JAR 库,需要安装 JRE 3) 使用 GCJ 将 JAR 编译成原生 DLL 并在 VBA 中使用

http://www.microsoft.com/germany/msdn/library/office/OfficeVBAUndDieWindowsAPI.mspx?mfr=true

我认为: 位置1很容易,但我必须等待 位置3 在实践中是不可能的

有没有关于pos的一些想法。 2?

谢谢。

【问题讨论】:

    标签: vba dll jar gcj


    【解决方案1】:

    这取决于您是否希望从 JAR 文件中返回值。如果您不这样做,并且只想执行一个方法,那么您可以使用 VB 中的“Shell”(或 ShellExecute),如下所示:

    Shell("java.exe -jar " & <yourJARFile>)
    

    如果您确实需要返回一个值,那么您很可能需要一个桥接器 - 此处类似讨论(对于 VB.NET,但原理相同):Can you use Java libraries in a VB.net program?

    基于人们创建的大多数桥接器都是用于 .NET 而不是 VBA/6,因此您可能需要以某种方式创建自己的桥接器,或者创建一个 .NET DLL,然后由您的 VBA 代码使用。

    【解决方案2】:

    这可以通过使用Obba 的VBA 宏来执行。 (免责声明:我正在开发 Obba)。

    【讨论】:

      【解决方案3】:

      当您需要 2 种不同的技术来说话时,可以使用几种方法,使用 Objects/Methods 出版物:

      • Corba &(或 RMI 或 JMS)
      • 肥皂
      • RESTful API
      • 网络服务
      • 文件数据交换。
      • IPC 管道

      根据您的解决方案的复杂程度。

      调用“java.exe”在 VM 中运行库,您可以使用外部资源生成输出,但只有前 3 个用于在异构解决方案中交换对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        • 2013-03-29
        • 1970-01-01
        • 2011-05-12
        • 2016-07-07
        相关资源
        最近更新 更多