有没有Java库来访问本机Windows API? 无论是与COM或JNI。
你可以尝试这两个,我已经看到了两个成功。
http://jawinproject.sourceforge.net
Java / Win32集成项目(Jawin)是一个免费的开放源码体系结构,用于Java和通过Microsoft组件对象模型(COM)或通过Win32动态链接库(DLL)公开的组件之间的互操作。
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与本地库的交互。
看看华夫饼