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

A400互联1H/1G/10M/300G流量37.8元/季

A400互联是一家成立于2020年的商家,本次给大家带来的是,全新上线的香港节点,cmi+cn2线路,全场香港产品7折优惠,优惠码0711,A400互联,只为给你提供更快,更稳,更实惠的套餐。目前,商家推出香港cn2节点+cmi线路云主机,1H/1G/10M/300G流量,37.8元/季,云上日子,你我共享。A400互联优惠码:七折优惠码:0711A400互联优惠方案:适合建站,个人开发爱好者配置...

韩国服务器租用优惠点评大全

韩国服务器怎么样?韩国云服务器租用推荐?韩国服务器距离中国近,有天然的地域优势,韩国服务器速度快而且非常稳定!有不少有亚洲市场的外贸公司选择韩国服务器开拓业务,韩国服务器因自身的优势也受到不少用户的青睐。目前的IDC市场上,韩国、香港、美国三个地方的服务器几乎占据了海外服务器的百分之九十以上。韩国服务器相比美国服务器来说速度更快,而相比香港机房来说则带宽更充足,占用市场份额非常大。那么,韩国服务器...

WebHorizon($10.56/年)256MB/5G SSD/200GB/日本VPS

WebHorizon是一家去年成立的国外VPS主机商,印度注册,提供虚拟主机和VPS产品,其中VPS包括OpenVZ和KVM架构,有独立IP也有共享IP,数据中心包括美国、波兰、日本、新加坡等(共享IP主机可选机房更多)。目前商家对日本VPS提供一个8折优惠码,优惠后最低款OpenVZ套餐年付10.56美元起。OpenVZCPU:1core内存:256MB硬盘:5G NVMe流量:200GB/1G...

javavm为你推荐
performclickC#中 键盘entre执行确定命令的代码是什么csonline2csol2房间人数是多少?能超过32人吗?求大神解答,尽可能详细,我需要CSOL2的情报谢谢。我webproxy什么是PAC网址qq博客怎么开QQ博客啊华为总裁女儿为啥姓孟孟晚舟是谁vga接口定义主板上的VGA接口有什么用?jstz举手望,草上马跑,打什么数字?jstz请帮忙翻译数据统计分析表如何用Excel做数据分析?assemblyinfo关于ASP.NET中使用log4net记录日志
电信服务器租用 域名服务器的作用 hawkhost 美国主机推荐 圣迭戈 la域名 godaddy优惠码 账号泄露 表格样式 鲜果阅读 panel1 好看qq空间 大容量存储器 web服务器的架设 域名转接 135邮箱 网络空间租赁 linux服务器维护 cdn加速是什么 中国网通测速 更多