代码拉取完成,页面将自动刷新
同步操作将从 Mario_Q/jnitool 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
@jnitool version 1.0
这是一个代码生成工具是为了方便,自定义的Java结构体转成C++结构体方便C++的调用,通过对JNI的封装了方便C++和Java结构体之间的交互.
对自定义java结构体访问的封装,避免到处调用jni去访问该结构体,集中式管理。 比如在修改java结构体的命名或字段名时,如果不修改所有C++对应的调用部分(如果这种调用到外都是),编译并不会出错,运行时会出现莫名其妙的错误。但如果改成访问相应的C++结构体,在修改java结构体时,使用工具更新一下C++的结构体就可以了(如果有非基本类型或数组要做一点相应的修改),在编译的时候其它地方就会因为访问错误的字段名而出错。
运行需要安装jdk. 为了方便在命令行中使用 ,可以把工具所在的路配置到环境变量中。
用法 jnitool [选项] [包名]类名
此程序会调用javap命令,请确保在命令行中可以执行javap命令。此命令类似于javap命令
-classpath <目录> 指定类文件路径中间不能有空格,不指定则默认是当前目录
-out <目录> 指定输出路径中间不能有空格,不指定则默认是当前目录
-help 输出帮助提示
例子:jnitool -classpath e:\\my_project\\bin\\com\\cn -out e:\\my_project\\src Data
jnitool -classpath e:\\my_project\\bin com.cn.Data
jnitool -help
输出的文件是以java的类名来命名的,如上面的则是Data.h和Data.cpp文件
jstr = (*env)->GetObjectField( obj, fid);
str = (*env)->GetStringUTFChars(jstr, NULL);
if (str == NULL) {
return; /* out of memory */
}
(*env)->ReleaseStringUTFChars(jstr, str);
/* Create a new string and overwrite the instance field */
jstr = (*env)->NewStringUTF("123");
if (jstr == NULL) {
return; /* out of memory */
}
(*env)->SetObjectField(obj, fid, jstr);
在配置好环境变量之后 用命令行进入到example目录下(win7可以打开到example目录下后,按住shift+右键,在此处打开命令行窗口),运行jnitool com.Point就可以看到输出了point.h和point.cpp文件。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。