【问题标题】:How to expose Java through COM/native DLL?如何通过 COM/native DLL 暴露 Java?
【发布时间】:2011-10-20 20:30:13
【问题描述】:

我想开发一个通过 COM公开其功能的 Java 应用程序,因为旧版 VB 应用程序需要与之通信。

有几个库可以使用 COM 组件;但是其中一些是否同时支持公开 COM?

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

有什么想法吗?

【问题讨论】:

    标签: java com native


    【解决方案1】:

    Windows 平台上的 Java 与 an ActiveX packager 捆绑在一起。使用此打包器,您可以将 JavaBeans 发布为 COM 对象。唉,打包程序是为 Visual JavaBeans(即作为小部件公开的 UI 组件)设计的,我不确定它处理非可视组件的效果如何。

    【讨论】:

      【解决方案2】:

      如果这是一个独立的应用程序或服务器进程,即使使用 protobuf,您也需要一种与 Java 代码通信的方法。您是否考虑过编写公开 HTTP 端点所必需的 Java?您可以通过这种方式公开 API,让 VB 直接访问 Java,而不是通过代理。我已经做到了。

      如果 Java 只是一个库,我建议使用托管 C++。您可以对 Java 进行 JNI 调用。您可以在 C++ 中创建 COM 对象,然后使用 JNI 映射到 Java 以进行实际工作。这个我还没有做...但是你问的想法!

      【讨论】:

      • “直接”是什么意思...通过 HTTP 不会是直接的,对吗?
      【解决方案3】:

      您总是可以通过 JNI 和 C/C++ 来实现。只需从中运行 JVM。

      还有另一种选择——您可以使用纯C to create a .dll 并直接从VB 调用它。在这里你可以通过 JNI 或使用 GCJ 从 java 代码构建原生库。

      或者您可以将 java 应用程序公开为 WebService 或类似的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-24
        • 1970-01-01
        相关资源
        最近更新 更多