JNI:取得Java属性和设置Java属性值
发布于 2024-07-22
762
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
BUG弄潮儿
扫码关注公众号
扫码阅读
手机扫码阅读
取得Java属性/设定Java属性值
在获取Java属性对应的jfieldID后,可以使用一系列JNI函数对Java属性进行操作。对于类实例属性,可以使用如Set/GetBooleanField,Set/GetByteField 等方法,而对于类静态属性,可用的方法包括Set/GetStaticBooleanField,Set/GetStaticByteField等。获取数组类型的属性可以通过GetObjectField实现,也有专门用于操作数组属性的JNI方法。
案例
在C/C++中修改Java中的属性
在Java代码中定义了TestNative类和整数属性number,C++代码演示了如何获取这个属性的类和标识符,并修改它的值。C++代码调用GetIntField获取属性值,然后使用CallBooleanMethod与jvalue数组来调用Java方法。
在C/C++中调用Java中的方法
Java的TestNative类中定义了一个比较两个双精度浮点数并返回最大值的方法max。C++代码演示了如何通过JNI获取这个方法的jmethodID,然后使用CallDoubleMethod来调用这个方法并获取返回值。
BUG弄潮儿
BUG弄潮儿
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
BUG弄潮儿的其他文章
JNI:本地代码调用Java代码
1. 本地代码访问Java代码在被调用的C/C++函数中也可以反过来访问Java程序中的方法javah 工具
JNI:全局引用&局部引用&弱全局引用
从Java虚拟机创建的对象传到本地 C/C++ 代码时就会产生引用。根据Java的垃圾回收机制,只要有引用存
企业DevOps之路:私有镜像仓库 Harbor 搭建
1. Harbor 概述容器技术越来越火,越来越成熟,容器应用的开发和运行始终离不开可靠的镜像管理,虽然 D
k8s安装环境准备:Virtualbox安装CentOS;复制多个CentOS虚拟机
k8s安装环境准备:Virtualbox安装CentOS;复制多个CentOS虚拟机
Springboot 之 JDBC 多数据源实现
简介Springboot 中使用 JdbcTemplate 实现多数据源比较简单。查看 JdbcTempla
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线