0

有什么方法可以在不创建 dll 的情况下从 jni 创建本机函数?我的意思是在 python http://docs.python.org/2/extending/embedding.html 第 5.4 节中。扩展嵌入式 Python

我不想使用 dll 导出的函数。

问候

4

3 回答 3

1

您可以将 VM 嵌入到本机应用程序中,从 C/C++ 调用 Java,然后从 Java 回调回 C/C++。请参阅JNI 文档中的调用 API。这样就不需要动态链接 (DLL)。您还可以通过使用本机方法(例如使用ASM)生成字节码,然后使用RegisterNatives注册所需的任何 C/C++ 函数指针,在运行时动态生成类。

于 2012-12-28T22:49:31.240 回答
0

从技术上讲是可能的。

大约 6 或 8 年前,我看到了一个 C++ 实现(它在 codeproject 站点上展示),它创建了一个 JVM 并确实访问了 Java 类。不是很受欢迎,有很好的理由,这里不胜枚举,但也是可能的。

我强烈建议做另一边,正是你不想要的:java调用dll左右,但有很多原因,但取决于你......

于 2012-12-28T20:18:12.887 回答
0

也许JNA做你想做的事?

于 2012-12-28T22:43:27.753 回答