1

有这个库使 JNI 中的 C 函数调用映射变得容易。我认为它被称为共享存根 API 或类似的东西,它在著名的 JNI 书中有所描述,并且曾经可以从 Oracle 站点下载。我再也找不到它了。有谁知道它现在在哪里?

最重要的是,在这个实现中有一个用于 x86 架构的代码的内联汇编部分。我想知道是否有人找到了此代码的 x64 模拟?任何帮助表示赞赏。

谢谢

4

3 回答 3

3

您可以查看 JNA 库https://github.com/twall/jna

您应该记住,从 Java 调用程序集很容易比用 Java 编写相同的东西慢得多(无论如何都会编译为本机程序集)

这仅在非常非常罕见的情况下有用。

于 2013-05-15T19:32:29.757 回答
0

我相信你指的是这本书:http://192.9.162.55/docs/books/jni/download/jni.pdf

于 2013-05-15T19:44:30.503 回答
0

刚刚发现了我不久前问的这个老问题。没错,JNA 是要走的路,这就是我最终使用的。

关于避免原生调用的建议,性能考虑并不是决定使用原生 API 的唯一因素。我发现自己经常将 Java 与用 C/C++ 编写的遗留代码集成,通常是我没有源代码的第三方库(坦率地说,我也不想拥有它)。可以将这些库包装到本机方法调用中,但通常这是很多工作。JNA 在这方面有很大帮助。

于 2016-02-08T17:33:38.683 回答