2009-03-03 36 views

回答

19

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

http://jawinproject.sourceforge.net

中的java/Win32的集成项目 (Jawin)是一个免费,开源 架构,Java和组件之间的互操作 暴露 通过微软的组件对象 模型(COM)或通过的Win32动态 链接库(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本机接口(JNI)是一个 编程框架,允许在Java虚拟机 (JVM)来运行Java 代码通过 本地应用程序(程序特定的 到硬件和操作系统 平台)和库wr(1)请致电 其他语言,如C,C++和 汇编。

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

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

5

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

2

Jacob是在COM端相当不错(但它是真正 COM - 就像你在C++写的 - 如果你熟悉与真正的COM编程,然后雅各布是一个单元使用)

+0

不是要鸡蛋里挑骨头,但COM通过** C **接口公开服务。 – IInspectable 2015-06-26 20:32:54

1

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

(完全披露:我在该项目上工作)。

另一种选择是JFFI - 这是在jruby和jython中用来与本地库进行交互。

相关问题