是否有针对x64的JNI共享存根实现?

时间:2013-05-15 19:29:37

标签: java java-native-interface

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

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

由于

3 个答案:

答案 0 :(得分:3)

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

你应该记住,从Java调用程序集可能比在Java中编写相同的东西要慢得多(无论如何都要编译为本机程序集)

这只是非常非常罕见的情况。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

刚刚发现我刚问过这个老问题。没错,JNA是要走的路,这就是我最终使用的方式。

关于避免本机调用的建议,性能注意事项不是决定使用本机API的唯一方法。我发现自己经常将Java与用C / C ++编写的遗留代码集成在一起,通常是我没有源代码的第三方库(坦率地说,我也不关心它)。可以将这些库包装到本机方法调用中,但通常这需要很多工作。 JNA在这里帮了很多忙。