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

GreenCloudVPS$20/年多国机房可选,1核@Ryzen 3950x/1GB内存/30GB NVMe/10Gbps端口月流量2TB

GreencloudVPS此次在四个机房都上线10Gbps大带宽VPS,并且全部采用AMD处理器,其中美国芝加哥机房采用Ryzen 3950x处理器,新加坡、荷兰阿姆斯特丹、美国杰克逊维尔机房采用Ryzen 3960x处理器,全部都是RAID-1 NVMe硬盘、DDR4 2666Mhz内存,GreenCloudVPS本次促销的便宜VPS最低仅需20美元/年,支持支付宝、银联和paypal。Gree...

ZoeCloud:香港BGP云服务器,1GB内存/20GB SSD空间/2TB流量/500Mbps/KVM,32元/月

zoecloud怎么样?zoecloud是一家国人商家,5月成立,暂时主要提供香港BGP KVM VPS,线路为AS41378,并有首发永久8折优惠:HKBGP20OFF。目前,解锁香港区 Netflix、Youtube Premium ,但不保证一直解锁,谢绝以不是原生 IP 理由退款。不保证中国大陆连接速度,建议移动中转使用,配合广州移动食用效果更佳。点击进入:zoecloud官方网站地址zo...

LOCVPS-2021年6月香港便宜vps宽带升级,充值就送代金券,其它八折优惠!

LOCVPS怎么样?LOCVPS是一家成立于2011年的稳定老牌国人商家,目前提供中国香港、韩国、美国、日本、新加坡、德国、荷兰等区域VPS服务器,所有机房Ping延迟低,国内速度优秀,非常适合建站和远程办公,所有机房Ping延迟低,国内速度优秀,非常适合做站。XEN架构产品的特点是小带宽无限流量、不超售!KVM架构是目前比较流行的虚拟化技术,大带宽,生态发展比较全面!所有大家可以根据自己业务需求...

javavm为你推荐
企业资源管理系统企业管理系统有哪些?搜索引擎的概念搜索引擎的工作原理是什么及发展历史12种颜色油画的基本12种颜色是什么模式识别算法模式识别的简史天翼校园宽带中国电信校园宽带怎么样?单元测试规范单元场景测试是如何进行的?papertiger亚瑟士 艾斯克斯 tiger有什么区别吗移动硬盘文件或目录损坏且无法读取急:移动硬盘无法访问,打开提示”文件或目录损坏且无法读取”网络备份如何自运远程备份监控插件千里眼监控软件怎么使用啊?
我的世界服务器租用 域名查询工具 俄罗斯vps linuxvps lunarpages themeforest info域名 国外代理服务器地址 100m独享 免费高速空间 阿里云免费邮箱 电信网络测速器 中国电信测速网站 wordpress中文主题 lamp架构 杭州电信宽带优惠 注册阿里云邮箱 tracker服务器 accountsuspended winserver2008r2 更多