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

7

有一个jar库

尚未提供本机C++端口(作为DLL)

我需要从中调用

我有3个选择:

1)等待本机端口就绪 2)通过桥接(?)从VB使用JAR库,需要安装JRE 3)使用GCJ将JAR编译为本机DLL,并在VBA中使用它

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

我认为: pos. 1很容易,但我必须等待 pos. 3在实践中几乎不可能

对于pos. 2有什么想法吗?

谢谢。

3个回答

5

这取决于您是否希望从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代码使用。


3

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


0

当你需要让两种不同的技术进行通信时,有几种方法可供选择,可以使用对象/方法发布:

  • Corba & (或 RMI 或 JMS)
  • SOAP
  • RESTful API
  • WebServices
  • 文件数据交换。
  • IPC 管道

根据复杂程度,您将采取相应的解决方案。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接