JNI开发之访问java的实例
来源:互联网 发布:数据库同步工具 编辑:程序博客网 时间:2024/05/16 08:47
前言:前几章讲述了如何访问Java的属性和属性方法,今天看一下如何访问java的实例。
----------分割线-----------
java代码:
package com.fly;import java.util.Random;public class TestJni {String name;int age;public TestJni(String name, int age) {super();this.name = name;this.age = age;}public native static TestJni newObjfromJni();public static void main(String[] args) {TestJni newObjfromJni = newObjfromJni(); System.out.println(newObjfromJni()); } public String toString() { return "FLY [name=" + name + ", age=" + age + "]"; }// 加载动态库static {System.loadLibrary("JNI");}}
C代码:
#include"com_fly_TestJni.h" JNIEXPORT jobject JNICALL Java_com_fly_TestJni_newObjfromJni(JNIEnv *env, jclass jcs){//函数原型jclass(JNICALL *FindClass)(JNIEnv *env, const char *name);//得到指定的class//第一个参数//第二个参数 要获取class 的包名/类名jclass fmy_class = (*env)->FindClass(env, "com/fly/TestJni");//函数原型 jmethodID (JNICALL *GetMethodID)(JNIEnv *env, jclass clazz, const char *name, const char *sig);//第一个参数 //第二个参数 对应的 所在类名class//第三个参数 方法名 构造方法固定为<init>//第四个参数 签名jmethodID method_id = (*env)->GetMethodID(env, fmy_class, "<init>", "(Ljava/lang/String;I)V");jstring name = (*env)->NewStringUTF(env, "XiaoMing");jint age = 12l;//函数原型: jobject (JNICALL *NewObject)(JNIEnv *env, jclass clazz, jmethodID methodID, ...);//第一个参数//第二个参数 对应类class//第三个参数 方法id//第四个参数 可变参数 传入构造方法使用return (*env)->NewObject(env, fmy_class, method_id, name, age);}运行:
----------完---------
阅读全文
0 0
- JNI开发之访问java的实例
- [JNI]开发之旅(6)JNI函数中访问java类中对象的属性
- Android JNI开发(4)--访问Java的实例变量和静态变量
- JAVA JNI开发应用实例
- Cocos2d-x游戏开发之Cocos2dx通过JNI调用Android的Java代码(webView实例)
- Java再说JNI之实例
- JNI/NDK开发指南(五)---C/C++访问Java实例方法和静态方法
- JNI/NDK开发指南(六)--C/C++访问Java实例变量和静态变量
- Android-NDK开发之基础--Android JNI实例代码(三)-- 在JNI中构造和实例化Java类
- Android-NDK开发之基础--Android JNI实例代码(三)-- 在JNI中构造和实例化Java类
- Android-NDK开发之基础--Android JNI实例代码(三)-- 在JNI中构造和实例化Java类
- JNI学习之---用jni API 访问java对象的属性,方法,调用构造器。
- [JNI] 开发之旅 (2)解释jni helloworld实例
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- Android-NDK开发之基础--Android JNI实例代码(一)-- 在JNI中执行Java方法--C/C++调用Java
- JNI开发之访问java对象非静态属性和静态属性
- JNI开发之访问java属性方法和静态属性方法
- 安装完Hadoop之后,命令行输入hadoop却找不到命令
- CoreML学习——转换caffe模型并应用到 iOS App中
- TP框架Hook的使用
- 3-1 对表进行聚合查询
- leetcode_7_Reverse Integer
- JNI开发之访问java的实例
- React中文
- python学习日志--day2
- 批归一化
- linux下grep命令
- 移动端系统:scroll,fixed
- 精通比特币
- placeholder和prompt的用法
- 动态修改easyui组件tab的title属性