从 VBA/VBScript/Visual Basic Classic 调用 Java 库 (JAR)

问题描述 投票:0回答:3

我正在使用 JAR 库,但本机 C++ 端口(作为 DLL)尚不可用。

我需要从 VBA 访问此功能,我正在考虑三个选项:

等待本机移植完成。 通过桥从 VBA 访问 JAR 库(需要安装 JRE)。 使用 GCJ 将 JAR 编译为本机 DLL,然后从 VBA 调用它(尽管我认为这实际上是不可行的)。 我相信选项 1 是最简单的,尽管它需要等待。选项 3 似乎不切实际。

您能否提供有关选项 2 的任何见解或建议?具体来说,我有兴趣在 VBA 和 JAR 库之间建立可靠的桥梁。

感谢您的协助!

vba dll jar gcj
3个回答
5
投票

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

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

如果你确实需要返回一个值,那么你很可能需要一个桥接器 - 这里有类似的讨论(对于 VB.NET,但原理是相同的):你可以在 VB.net 程序中使用 Java 库吗?

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


3
投票

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


0
投票

当您需要两种不同的技术来表达时,可以使用多种方法,请使用以下方法获取对象/方法出版物:

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

根据您将采取的解决方案的复杂性。

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

© www.soinside.com 2019 - 2024. All rights reserved.