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...

易探云月付18元起,香港/美国/深圳/北京VPS,CN2、BGP等多线路

易探云怎么样?易探云是国内一家云计算服务商家,致力香港服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。易探云服务器均选择当下热门线路,比如CN2 GIA、BGP线路、CN2线路等,所有云主机支持月付,并且首月优惠,年付优惠,优惠后香港沙田云服务器/独立ip/香港CN2线路,每月仅18元,188元/年。点击进入:易探云官方网站地址1、香港...

亚洲云Asiayu,成都云服务器 4核4G 30M 120元一月

点击进入亚云官方网站(www.asiayun.com)公司名:上海玥悠悠云计算有限公司成都铂金宿主机IO测试图亚洲云Asiayun怎么样?亚洲云Asiayun好不好?亚云由亚云团队运营,拥有ICP/ISP/IDC/CDN等资质,亚云团队成立于2018年,经过多次品牌升级。主要销售主VPS服务器,提供云服务器和物理服务器,机房有成都、美国CERA、中国香港安畅和电信,香港提供CN2 GIA线路,CE...

EdgeNat 新年开通优惠 - 韩国独立服务器原生IP地址CN2线路七折优惠

EdgeNat 商家在之前也有分享过几次活动,主要提供香港和韩国的VPS主机,分别在沙田和首尔LG机房,服务器均为自营硬件,电信CN2线路,移动联通BGP直连,其中VPS主机基于KVM架构,宿主机采用四路E5处理器、raid10+BBU固态硬盘!最高可以提供500Gbps DDoS防御。这次开年活动中有提供七折优惠的韩国独立服务器,原生IP地址CN2线路。第一、优惠券活动EdgeNat优惠码(限月...

javavm为你推荐
qq博客怎样开通QQ博客?12种颜色12种颜色的英语怎么写,用中文怎么读模式识别算法机器学习和模式识别有什么区别?看教材,发现它们的算法都差不多一样啊。。。熊猫烧香病毒下载熊猫烧香病毒?qq网络硬盘如何使用QQ网络硬盘币众筹众筹有哪几种 众筹如何实现回报labelforhtml标签中lable的for属性有什么作用?人脸识别解锁iphone人脸识别解锁网络备份网络系统备份的主要目的以及网络系统备份体系主要包括哪几方面?网络备份win7中如何备份网络设置
域名服务商 网站空间购买 买域名 花生壳免费域名申请 enzu l5639 鲜果阅读 火车票抢票攻略 win8.1企业版升级win10 国内php空间 中国特价网 架设服务器 合租空间 双十一秒杀 美国网站服务器 卡巴斯基破解版 阿里云邮箱登陆地址 广东主机托管 买空间网 黑科云 更多