我想通过COM开发一个公开它的功能的Java应用程序,因为传统的VB应用程序需要与它进行通信。
有几个库可以消费 COM组件;但是他们同时支持暴露 COM?
我还想过创建一个用C#编写的代理,然后通过protobuf与Java-App进行通信。
有什么想法吗?
答案 0 :(得分:2)
Windows平台上的Java与an ActiveX packager捆绑在一起。使用此打包器,您可以将JavaBeans发布为COM对象。唉,打包器适用于Visual JavaBeans(即作为小部件公开的UI组件),我不确定它处理非可视组件的效果如何。
答案 1 :(得分:1)
如果这是一个独立的应用程序或服务器进程,即使使用 protobuf ,您也需要一种与Java代码通信的方法。您是否考虑过编写公开HTTP端点所需的Java?您可以通过这种方式公开API,让VB直接访问Java,而不是通过代理。我已经这样做了。
如果Java只是一个库,我建议寻找Managed C ++。您可以将JNI调用到Java中。您可以使用C ++创建COM对象,然后使用JNI将Java映射到实际工作中。我没有这样做......但是你提出了想法!
答案 2 :(得分:1)
你总是可以通过JNI用C / C ++来做到这一点。只需从中运行JVM。
又一个选项 - 您可以使用纯C to create a .dll并直接从VB调用它。在这里,您可以通过JNI或使用GCJ从Java代码构建本机库。
或者您可以将Java应用程序公开为WebService或类似的。