如何在 Linux JVM 中使用本机 windows DLL
How to use a native windows DLL inside a Linux JVM
我在 DLL 文件中有一个简单的 API 和本机函数 (JNA),它只计算一些数学内容。
我在 JAVA 应用程序中使用此 DLL,在 windows JVM 上一切正常。
问题是这个库将在 Linux JVM 内的 Linux 环境中使用,并且不会有 *.so 版本。
我读过几次,有一种方法可以在内存中加载带有 wine 的 DLL 并从那里使用它,但没有解释如何操作。
有人可以为我确认或反驳这种方法吗?如果这确实是一个可能的解决方案,请告诉我该怎么做,好吗?
编辑:可能是 How to call Wine dll from python on Linux? 我能以某种方式使用 ctypes 吗?
中描述的解决方案
问候
wurmi
我想你应该可以做到这一点,但我找不到分步指南,而且我自己也没有做过。尝试执行以下操作:
- 创建一个 linux C 应用程序,使用
winelib
调用 DLL 中的本机函数
- 一旦它在 C 中工作,从该 C 代码导出一个函数,该函数委托给 DLL 并将其编译为
so
(linux DLL)
- 在 linux
从 JNA 调用你的 C so
祝你好运!
希望有过这方面经验的人能在这里给出更详细的答案。如果没有,请务必post如何做作为答案,以便其他人可以受益:-)
(answer you linked to 指的是 Windows 提供的 DLL,Wine 附带了这些的编译版本。)
我在 DLL 文件中有一个简单的 API 和本机函数 (JNA),它只计算一些数学内容。 我在 JAVA 应用程序中使用此 DLL,在 windows JVM 上一切正常。
问题是这个库将在 Linux JVM 内的 Linux 环境中使用,并且不会有 *.so 版本。
我读过几次,有一种方法可以在内存中加载带有 wine 的 DLL 并从那里使用它,但没有解释如何操作。
有人可以为我确认或反驳这种方法吗?如果这确实是一个可能的解决方案,请告诉我该怎么做,好吗?
编辑:可能是 How to call Wine dll from python on Linux? 我能以某种方式使用 ctypes 吗?
中描述的解决方案问候 wurmi
我想你应该可以做到这一点,但我找不到分步指南,而且我自己也没有做过。尝试执行以下操作:
- 创建一个 linux C 应用程序,使用
winelib
调用 DLL 中的本机函数 - 一旦它在 C 中工作,从该 C 代码导出一个函数,该函数委托给 DLL 并将其编译为
so
(linux DLL) - 在 linux 从 JNA 调用你的 C
so
祝你好运!
希望有过这方面经验的人能在这里给出更详细的答案。如果没有,请务必post如何做作为答案,以便其他人可以受益:-)
(answer you linked to 指的是 Windows 提供的 DLL,Wine 附带了这些的编译版本。)