如何通过COM /本机DLL公开Java?

时间:2011-10-20 11:23:27

标签: java com native

我想通过COM开发一个公开它的功能的Java应用程序,因为传统的VB应用程序需要与它进行通信。

有几个库可以消费 COM组件;但是他们同时支持暴露 COM?

我还想过创建一个用C#编写的代理,然后通过protobuf与Java-App进行通信。

有什么想法吗?

3 个答案:

答案 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或类似的。