是否有Java库来访问本机Windows API?

时间:2009-03-03 15:26:12

标签: java windows winapi

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

6 个答案:

答案 0 :(得分:20)

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

http://jawinproject.sourceforge.net

  

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

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

  

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)

来自TeamDev的

JNIWrapperConfyJ

答案 4 :(得分:1)

另一个选项是WinRun4J。它有一个本机绑定层,旨在与pinvoke.net(点网中使用的本机绑定格式)兼容。有关详细信息,请参阅examples。它有点早,所以YMMV。

(完全披露:我参与该项目)。

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

答案 5 :(得分:1)

查看Waffle