【发布时间】:2010-10-11 01:06:30
【问题描述】:
是否有用于访问本机 Windows API 的 Java 库?使用 COM 或 JNI。
【问题讨论】:
是否有用于访问本机 Windows API 的 Java 库?使用 COM 或 JNI。
【问题讨论】:
你可以试试这两个,我都看到成功了。
http://jawinproject.sourceforge.net
Java/Win32 集成项目 (Jawin) 是一个免费的开源软件 互操作架构 Java 和暴露的组件之间 通过微软的组件对象 模型 (COM) 或通过 Win32 动态 链接库 (DLL)。
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 的设计旨在 以自然的方式提供本地访问 用最少的努力。不 样板或生成的胶水代码是 必填。
【讨论】:
JNA 很不错。我只是一个初学者,我发现它很容易。不仅适用于 Win32 API,而且适用于几乎所有其他 DLL。
【讨论】:
Jacob 在 COM 方面相当出色(但它是真正的 COM - 就像你用 C++ 编写的那样 - 如果你熟悉真正的 COM 编程,那么 Jacob 很容易上手)
【讨论】:
JNIWrapper 或 ConfyJ 来自 TeamDev。
【讨论】:
另一个选项是WinRun4J。它有一个原生绑定层,旨在与pinvoke.net(dot net 中使用的原生绑定格式)兼容。有关更多信息,请参阅examples。时间还早,所以 YMMV。
(完全披露:我从事该项目)。
还有一个选项是JFFI - 这在 jruby 和 jython 中用于与本机库交互。
【讨论】:
查看Waffle
【讨论】: