我需要整合两个程序。一个是Microsoft Access程序。另一个是Java程序。这里任何一个都没有选择平台的灵活性,这些都是现有的复杂程序。
Access程序在某些时候需要吐出一行文本,Java程序知道如何将其转换为代码(另一行文本),并接收该代码。 Java程序只是一个命令行应用程序,打包为jar,它接收一个文本并吐出另一个。
最简单的方法是什么?
我认为Access由于安全问题不能直接进行系统调用,除非我遗漏了什么?以前,转换实用程序打包为DLL并通过OLE调用。我可以将jar文件打包为DLL,但这看起来很迂回。这是我能做的最好的吗?
(如果有另一个类似的问题,请指出我。在Java和Access的搜索结果中,人们通常会做相反的事情:通过Java访问Access数据库。)
答案 0 :(得分:1)
如何使用this page上描述的技术。
您将给予WScript.Shell.Exec()函数的字符串更改为执行Java程序所需的任何命令。然后通过调用Exec对象的StdOut属性的ReadAll()来获得Java程序的输出。
答案 1 :(得分:0)
为什么不简单地将Access进程作为包含现有.jar的Java程序的子进程生成?这样,您就不必执行任何任何特定于Java / MS的集成,并且可以将现有的.jar用作新Java程序中的库。
捕获Access程序的stdout,用Java处理它,然后通过stdin将其写回来?有关更多信息,请参阅Process对象;有关如何使用stdout / err的更多信息,请参阅this answer。