【发布时间】:2010-05-12 00:39:55
【问题描述】:
我创建了一个 VB 宏。我想向宏传递一个字符串和一个文件位置。我将如何在 java 代码中调用它。有这个库吗?
【问题讨论】:
我创建了一个 VB 宏。我想向宏传递一个字符串和一个文件位置。我将如何在 java 代码中调用它。有这个库吗?
【问题讨论】:
您可以使用 Windows 附带的“cscript.exe”运行 vbscript。
根据您的场景,您可以通过多种方式从 Java 启动它:
编辑:如果您的脚本有 GUI,则使用“wscript.exe”。
我假设您的意思是 vbscript,但如果您真的指的是宏,例如 Word 宏,那么您需要执行以下操作:
"C:\Program Files\Microsoft Office\Office12\Winword.exe"
"C:\MyPath\MyDoc.doc" /m"Macro1"
或者,您可以创建一个小的 vbscript 来实例化 Word 应用程序并使用 run() 方法来调用宏。您使用 cscript.exe/wscript.exe 执行该脚本。
【讨论】:
有"JACOB - Java COM Bridge" on SourceForge。该项目有第二个,more dated homepage。
还有一个名为J-Integra 的商业 (D)COM/ActiveX 自动化库,它看起来也可以做这样的事情。
免责声明:这些只是我从 Google 中提取的链接,我对这些库没有实际经验。
【讨论】:
我们正在使用 Com4J,它为我们创建了一组看起来与 Word VBA 中可用的 ActiveX 类相同的 Java 类,并直接调用它们。这显然只适用于 Windows 机器,因为 Word 不能在 Linux 上运行(除非你有很多时间和 Wine)。
通过在 Java 中准备好这些 API,我们将能够调用在 word 中定义的任何宏。
【讨论】: