摘要: 一、安装VMware 二、下载Ubuntu镜像 下载ubuntu-22.04.2-desktop-amd64.iso镜像文件 三、新建虚拟机 1、新建一个名为UbuntuX64的文件夹,用于存放Ubuntu虚拟机 2、打开VMware,选择“创建新的虚拟机” 3、选择“自定义(高级)”,下一步 4、 阅读全文
posted @ 2025-02-05 15:56 Plus301 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 本文将介绍JNI如何访问基本类型数组、对象数组(包括字符串数组)以及二维数组。可以使用GetArrayLength来获取数组的长度,使用GetIntArrayElements等函数直接访问基本类型数组中的元素,使用GetObjectArrayElement等函数访问对象数组和字符串数组,使用过程中确 阅读全文
posted @ 2025-01-14 11:37 Plus301 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 在JNI中访问Java对象的属性,通常需要先获取属性的 jfieldID,然后使用相应的函数进行读写操作。 1、访问非静态属性 例1: //Java代码public class MyClass { private int mValue; public MyClass(int value) { mVa 阅读全文
posted @ 2025-01-14 10:01 Plus301 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 1、String在C端的转换方式一 1)从 Java 到 JNI 到 C/C++,编码的转换过程 Java内部使用的是utf-16 16bit 的编码方式 JNI里面使用的是utf-8 unicode编码方式,英文是1个字节,中文3个字节 C/C++使用的是ascii编码,中文的编码方式 GB231 阅读全文
posted @ 2025-01-13 17:43 Plus301 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 一、JNI 访问Java中的构造方法 JNIEXPORT jobject JNICALL Java_JniMain_accessConstructor(JNIEnv * env, jobject jobj) { //1.通过类的路径来从JVM里面找到对应的类 jclass jclz = (*env) 阅读全文
posted @ 2025-01-13 17:26 Plus301 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 如果你想要在C或C++中创建一个Java对象,你需要使用JNIEnv提供的方法。 1、NewObject 方法 这个方法需要三个参数:一个类引用(jclass),一个构造函数Id(jmethodID),以及构造函数需要的参数。 // 1. 获取Person对应的jlcass对象 jclass per 阅读全文
posted @ 2025-01-13 16:08 Plus301 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 一、JNI 中普通方法和静态方法的本地实现有什么区别? 1、JNI 定义native普通方法和静态方法 1 public class MyJniClass { 2 // native 普通方法 3 public native void NormalNativeMethod(); 4 5 // nat 阅读全文
posted @ 2025-01-13 14:21 Plus301 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 在 JNI 中,获取 jclass 对象的方法主要有以下几种: 1、使用 FindClass 这是最常用的方法,通过类的全限定名来查找对应的jclass对象。 jclass clazz = env->FindClass("java/lang/String"); 2、使用 GetObjectClass 阅读全文
posted @ 2025-01-13 11:30 Plus301 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 一、简述总结 在 JNI 规范中定义了三种引用:局部引用(Local Reference)、全局引用(Global Reference)、弱全局引用(Weak Global Reference)。 All Java objects returned by JNI functions are loca 阅读全文
posted @ 2025-01-10 17:43 Plus301 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 在Java中,查看类的字段(成员变量)和方法签名通常可以通过反编译类的字节码来实现。你可以使用javap命令行工具来查看已编译类的字段和方法签名。 以下是使用javap命令的基本步骤: 首先,你需要有一个已编译的.class文件 打开命令行界面 使用javap命令并指定类的完全限定名(包括包名) 例 阅读全文
posted @ 2025-01-09 11:44 Plus301 阅读(21) 评论(0) 推荐(0) 编辑