【问题标题】:Is there a Java library to access the native Windows API?是否有用于访问本机 Windows API 的 Java 库?
【发布时间】:2010-10-11 01:06:30
【问题描述】:

是否有用于访问本机 Windows API 的 Java 库?使用 COM 或 JNI。

【问题讨论】:

    标签: java windows winapi


    【解决方案1】:

    你可以试试这两个,我都看到成功了。

    http://jawinproject.sourceforge.net

    Java/Win32 集成项目 (Jawin) 是一个免费的开源软件 互操作架构 Java 和暴露的组件之间 通过微软的组件对象 模型 (COM) 或通过 Win32 动态 链接库 (DLL)。

    https://github.com/twall/jna/

    JNA 提供 Java 程序轻松访问 到本地共享库(DLLs on Windows) 没有写任何东西,但 Java 代码——没有 JNI 或本机代码 必需的。这个功能是 可与 Windows 的 Platform/Invoke 媲美 和 Python 的 ctypes。访问是动态的 在运行时不生成代码。

    JNA 允许您直接调用 使用自然 Java 的本机函数 方法调用。 Java 调用看起来 就像在本机代码中一样。最多 呼叫不需要特殊处理或 配置;没有样板或 生成的代码是必需的。

    也在这里阅读:

    http://en.wikipedia.org/wiki/Java_Native_Interface

    Java 本机接口 (JNI) 是一个 允许Java的编程框架 在 Java 虚拟机中运行的代码 (JVM) 调用和被调用1 by 本机应用程序(特定于程序的 到硬件和操作系统 平台)和编写的库 其他语言,例如 C、C++ 和 组装。

    http://en.wikipedia.org/wiki/Java_Native_Access

    Java Native Access 提供 Java 程序轻松访问本机共享 不使用 Java 的库 本机接口。 JNA 的设计旨在 以自然的方式提供本地访问 用最少的努力。不 样板或生成的胶水代码是 必填。

    【讨论】:

      【解决方案2】:

      JNA 很不错。我只是一个初学者,我发现它很容易。不仅适用于 Win32 API,而且适用于几乎所有其他 DLL。

      【讨论】:

        【解决方案3】:

        Jacob 在 COM 方面相当出色(但它是真正的 COM - 就像你用 C++ 编写的那样 - 如果你熟悉真正的 COM 编程,那么 Jacob 很容易上手)

        【讨论】:

        • 不是吹毛求疵,而是 COM 通过 C 接口公开服务。
        【解决方案4】:

        JNIWrapperConfyJ 来自 TeamDev。

        【讨论】:

          【解决方案5】:

          另一个选项是WinRun4J。它有一个原生绑定层,旨在与pinvoke.net(dot net 中使用的原生绑定格式)兼容。有关更多信息,请参阅examples。时间还早,所以 YMMV。

          (完全披露:我从事该项目)。

          还有一个选项是JFFI - 这在 jruby 和 jython 中用于与本机库交互。

          【讨论】:

            【解决方案6】:

            查看Waffle

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-03-19
              • 1970-01-01
              • 2012-02-04
              • 2010-10-12
              • 2016-03-28
              • 2010-12-26
              • 2013-07-17
              • 1970-01-01
              相关资源
              最近更新 更多