有没有Java库来访问本机Windows API?

有没有Java库来访问本机Windows API? 无论是与COM或JNI。

你可以尝试这两个,我已经看到了两个成功。

http://jawinproject.sourceforge.net

Java / Win32集成项目(Jawin)是一个免费的开放源码体系结构,用于Java和通过Microsoft组件对象模型(COM)或通过Win32动态链接库(DLL)公开的组件之间的互操作。

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

JNA为Java程序提供了轻松访问本地共享库(Windows上的DLL)的功能,而无需编写任何Java代码,无需JNI或本地代码。 这个功能相当于Windows的平台/调用和Python的ctypes。 访问在运行时是动态的,无需生成代码。

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

另请阅读:

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

Java本地接口(Java Native Interface,JNI)是一种编程框架,允许在Java虚拟机(JVM)中运行的Java代码通过本地应用程序(特定于硬件和操作系统平台的程序)和其他编程库语言,如C,C ++和程序集。

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

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

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

Jacob在COM方面相当不错(但是它是真正的 COM–就像你用C ++编写的 – 如果你熟悉真正的COM编程,那么Jacob就是一个很好用的)

来自TeamDev的JNIWrapper或ConfyJ。

还有一个选择是WinRun4J 。 它有一个本地绑定层,旨在与pinvoke.net ( dotnet中使用的本地绑定格式)兼容。 查看更多信息的例子 。 它有点早,所以YMMV。

(全面披露:我在这个项目上工作)。

JFFI的另一个选择是JFFI ,它用于jruby和jython与本地库的交互。

看看华夫饼