javavm在powerdesigner 中出现Could not Initialize JavaVM! 应该怎么解决

javavm  时间:2021-06-08  阅读:()

JNIEnv和JavaVM的区别

Java和Android中JavaVM对象有区别 在java里,每一个process可以产生多个java vm对象,但是在android上,每一个process只有一个Dalvik虚拟机对象,也就是在android进程中是通过有且只有一个虚拟器对象来服务所有java和c/c++代码。

Java 的dex字节码和c/c++的*.so同时运行Dalvik虚拟机之内,共同使用一个进程空间。

之所以可以相互调用,也是因为有Dalvik虚拟机。

当java 代码需要c/c++代码时,在Dalvik虚拟机加载进*.so库时,会先调用JNI_Onload(),此时就会把JAVA VM对象的指针存储于c层jni组件的全局环境中,在Java层调用C层的本地函数时,调用c本地函数的线程必然通过Dalvik虚拟机来调用c层的本地函数,此时,Dalvik虚拟机会为本地的C组件实例化一个JNIEnv指针,该指针指向Dalvik虚拟机的具体的函数列表,当JNI的c组件调用Java层的方法或者属性时,需要通过JNIEnv指针来进行调用。

当本地c/c++想获得当前线程所要使用的JNIEnv时,可以使用Dalvik虚拟机对象的JavaVM* jvm->GetEnv()返回当前线程所在的JNIEnv*。

如何得到JavaVM,JNIEnv接口

JavaVM接口 第一种方式,在加载动态链接库的时候,JVM会调用JNI_OnLoad(JavaVM* jvm, void* reserved)(如果定义了该函数)。

第一个参数会传入JavaVM指针。

第二种方式,在native code中调用JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args)可以得到JavaVM指针。

两种情况下,都可以用全局变量,比如JavaVM* g_jvm来保存获得的指针以便在任意上下文中使用。

Android系统是利用第二种方式Invocation interface来创建JVM的。

JNIEnv接口 JNI开发最常见的错误就是滥用了JNIEnv接口。

需要强调的是JNIEnv是跟线程相关的。

在native method中,JNIEnv作为第一个参数传入。

那么在JNIEnv不作为参数传入的时候,该如何获得它?JNI提供了两个函数:(*jvm)->AttachCurrentThread(jvm, (void**)&env, NULL)和(*jvm)->GetEnv(jvm, (void**)&env, JNI_VERSION_1_2)。

两个函数都利用JavaVM接口获得JNIEnv接口,上面已经讲到如何获得JavaVM接口。

JNI规范也说明,可以将获得JNIEnv封装成一个函数。

buffer size是什么意思

buffer size 缓冲区大小 双语对照 词典结果: buffer size [英][?b?f? saiz][美][?b?f? sa?z] 缓冲区大小; ----------------------------------- 如有疑问欢迎追问! 满意请点击右上方【选为满意回答】按钮

services.exe占用CPU过高

本人也遇到类似问题,根据网上各家解答,好几天都无法解决,当然也不是病毒问题和某些杀毒软件问题,后来偶然发现,取消TWCU.EXE进场,居然使得services.exe占用率下来了。

TWCU.EXE是一个无线客户端应用软件,能方便用户配置无线网卡的工具,如果你的无线网卡很正常,就卸载这个工具吧!但估计services.exe占用率问题会有多种原因引起的,需要自己再慢慢测试!

jni是什么

JNI是Java Native Interface的缩写,中文为JAVA本地调用。

从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。

JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了

在powerdesigner 中出现Could not Initialize JavaVM! 应该怎么解决

在网上找了很多资料,试了很多方法,终于找到解决的方法了: 1、首先要安装32位的Mysqlodbc,下载下来mysql-connector-odbc-5.2.2-win32.msi并安装 网址: /downloads/connector/odbc/ ; (MySQL的官网下载地址) 2、安装完成之后进入控制面板 打开 管理工具 接着打开 数据源(ODBC) 点击 添加 点击 Test 进行测试,如果弹出essful说明连接成功 3、启动PowerDesigner File——>New 4、选择 Database——>ConfigureConnections...

Vultr再次发布充值多少送多少活动

昨天我们很多小伙伴们应该都有看到,包括有隔壁的一些博主们都有发布Vultr商家新的新用户注册福利活动。以前是有赠送100美元有效期30天的,这次改成有效期14天。早年才开始的时候有效期是60天的,这个是商家行为,主要还是吸引到我们后续的充值使用,毕竟他们的体验金赠送,在同类商家中算是比较大方的。昨天活动内容:重新调整Vultr新注册用户赠送100美元奖励金有效期14天今天早上群里的朋友告诉我,两年...

火数云 55元/月BGP限时三折,独立服务器及站群限时8折,新乡、安徽、香港、美国

火数云怎么样?火数云主要提供数据中心基础服务、互联网业务解决方案,及专属服务器租用、云服务器、专属服务器托管、带宽租用等产品和服务。火数云提供洛阳、新乡、安徽、香港、美国等地骨干级机房优质资源,包括BGP国际多线网络,CN2点对点直连带宽以及国际顶尖品牌硬件。专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松快捷运用云计算!多年云计算领域服务经...

UCloud新人优惠中国香港/日本/美国云服务器低至4元

UCloud优刻得商家这几年应该已经被我们不少的个人站长用户认知,且确实在当下阿里云、腾讯云服务商不断的只促销服务于新用户活动,给我们很多老用户折扣的空间不多。于是,我们可以通过拓展选择其他同类服务商享受新人的福利,这里其中之一就选择UCloud商家。UCloud服务商2020年创业板上市的,实际上很早就有认识到,那时候价格高的离谱,谁让他们只服务有钱的企业用户呢。这里希望融入到我们大众消费者,你...

javavm为你推荐
刘建平有个太极八卦紫砂壶,刘建平制,值多少钱?帮鉴定下orderbydescSQL里面的order by语句是干什么用的?应用雷达雷达有什么用途企业资源管理系统企业管理系统都有什么功能华为总裁女儿为啥姓孟任正非女儿为什么姓孟?腾讯公告腾讯出什么事了 所有QQ用户空间农场什么的都打不开 有的连空间都进不去 又受攻击了?人肉搜索引擎人肉搜索引擎是干什么的?河北云办税厅河北省商务厅的人员编制腾讯贴吧QQ应该有贴吧的吧?那怎样进QQ贴吧?在(=@__@=)哪里?山东省教育云平台服务山东教育云平台怎么这么烂
国内域名注册 com域名注册 私服服务器租用 域名服务器的作用 如何注册中文域名 流媒体服务器 英文简历模板word 网站保姆 evssl 12306抢票助手 typecho 长沙服务器 华为4核 亚洲小于500m cpanel空间 hkg 能外链的相册 德隆中文网 游戏服务器出租 lamp什么意思 更多