是否有Java库可以访问本机Windows API?使用COM或JNI。
答案 0 :(得分:20)
你可以试试这两个,我看到两者都取得了成功。
http://jawinproject.sourceforge.net
Java / Win32集成项目 (Jawin)是一个免费的开源软件 互操作架构 Java和暴露的组件之间 通过微软的组件对象 模型(COM)或通过Win32 Dynamic 链接库(DLL)。
JNA为Java程序提供了轻松访问 到本机共享库(DLL上) Windows)没有写任何东西,但 Java代码 - 没有JNI或本机代码 需要。这个功能是 与Windows的平台/调用相当 和Python的ctypes。访问是动态的 在运行时没有代码生成。
JNA允许您直接调用 使用自然Java的本机函数 方法调用。 Java调用看起来 就像在本机代码中一样。最 电话不需要特殊处理或 组态;没有样板或 生成的代码是必需的。
另请阅读:
http://en.wikipedia.org/wiki/Java_Native_Interface
Java Native Interface(JNI)是一个 允许Java的编程框架 在Java虚拟机中运行的代码 (JVM)通过调用和调用1 本机应用程序(程序特定 到硬件和操作系统 平台)和写的库 其他语言,如C,C ++和 组装
http://en.wikipedia.org/wiki/Java_Native_Access
Java Native Access提供Java 程序轻松访问本机共享 不使用Java的库 本机接口。 JNA的设计旨在 以自然的方式提供本地访问 尽量少付出精力。没有 样板或生成的胶水代码 必需的。
答案 1 :(得分:5)
JNA非常好。我只是一个初学者,我觉得很容易。不仅适用于Win32 API,也适用于几乎任何其他DLL。
答案 2 :(得分:2)
Jacob在COM方面相当不错(但它是真正的 COM - 就像你用C ++编写的那样 - 如果你熟悉真正的COM编程,那么Jacob很容易使用)
答案 3 :(得分:1)
答案 4 :(得分:1)
另一个选项是WinRun4J。它有一个本机绑定层,旨在与pinvoke.net(点网中使用的本机绑定格式)兼容。有关详细信息,请参阅examples。它有点早,所以YMMV。
(完全披露:我参与该项目)。
另一个选项是JFFI - 这在jruby和jython中用于与本机库交互。
答案 5 :(得分:1)
查看Waffle