扫码阅读
手机扫码阅读

JNI:本地代码调用Java代码

185 2024-07-22

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:JNI:本地代码调用Java代码
文章来源:
BUG弄潮儿
扫码关注公众号
Article Summary

1. 本地代码访问Java代码

C/C++函数可以访问Java程序中的方法,通过使用javah工具生成的函数声明,其中包含JNIEnv指针和Java对象作为参数。

6. Sign是什么?

在Java中,Sign(签名)用于区分重载的方法,指定要访问的属性或方法的类型。例如,区分TestNative类中的两个重载的function方法。

7. sign签名

签名用于表示Java中属性或方法的类型。每种基本数据类型(如boolean、int、double等)都有对应的签名代码,而对象和数组类型的签名则包含类的完整路径或数组元素的签名。

8. 使用签名获得属性/方法ID的例子(复杂)

在HelloNative类中,通过JNI获取属性和方法的ID需要使用相应的签名。例如,获取int类型的property属性签名为"I",而获取function方法的签名则需要包含参数和返回值类型,如"(ILjava/util/Date;[I)I"。

9. 使用javap命令来产生签名

JDK提供了javap工具来查看类的声明,输出方法或属性的签名信息。使用-s选项输出签名信息,-p选项包含private访问权限的成员信息。

这个摘要根据提供的文章内容,概括了文中关于本地代码访问Java代码、Sign(签名)的作用、签名的定义及其在JNI中的应用,以及如何使用javap命令获取签名信息。摘要保持了原文的结构,并使用了简洁的HTML格式进行展示。

想要了解更多内容?

查看原文:JNI:本地代码调用Java代码
文章来源:
BUG弄潮儿
扫码关注公众号