栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C调java获取进程已有的虚拟机

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C调java获取进程已有的虚拟机

一个进程只允许创建一个虚拟机,而java虚拟机的退出机制有事非强制性的。所以创建失败,后去尝试获取本进程已有虚拟机。

JavaVM *jvm;
JavaEnv *env;
JavaVMOption option[3];
option[0].optionString = "-Djava.complier=NONE";
option[1].optionString = "-Djava.class.path=./:.my.jar";
option[2].optionString = "-Djava.library.path=/my/path";
vm_args.version = JNI_VERSION_1_8;
vm_args.ignoreUnrecognized = JNI_TRUE;
vm_args.nOption = 3;
vm_args.options = options;
long Status = JNI_CreateJavaVM( &jvm, (void**)&env, &VM_args );
if( status < 0 || status == JNI_ERR ){
	jint count = 0;
	jint result = JNI_GetCreatedJavaVMs( &jvm,sizeof(JavaVM)*10, &count );
	if( result != JNI_OK ){
		printf("获取jvm失败n");
		return -1;
	}
	jint result1 = (*jvm)->GetEnv( jvm, (void**)&env, JNI_VERSION_1_8 );
	if( result1 != JNI_OK ){
		printf("获取env失败n");
		return -1;
	}
	jint2 result2 = (*env)->GetJavaVM( env, &jvm );
	if( result2 != JNI_OK ){
		printf("获取虚拟机失败n");
		return -1;
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/682725.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号