精华全集 冲广角币 获取广角币的更多方法
【名称】:操作Java虚拟机
【作者】:江苏 无锡 缪小东
【格式】:PDF
【页数】:4
【语言】:中文
【出版社】:
【出版日期】:
【摘要或目录】:
本篇和大家讲述一个比较高级的JNI的应用!主要讲述在C或C++中启动虚拟机! 一、启动虚拟机的C文件 //下面是启动JDK1.2后的虚拟机的c代码!JDK1.2后的虚拟机和之前的是不太相同的 //由于现在我们使用的虚拟机一般都是1.4甚至更高,所以我们使用1.2以上的虚拟机 /* invoke1.2.c */ #include <stdio.h> #include <jni.h> int main() { int res; //启动虚拟机的返回值,关于返回值请查手册 JavaVM *jvm; //虚拟机的指针 JNIEnv *env; //环境指针 JavaVMInitArgs vm_args; //虚拟机的启动参数 JavaVMOption options[3]; //虚拟机的选项 vm_args.version=JNI_VERSION_1_2;//这个字段必须设置为该值 /*设置初始化参数*/ options[0].optionString = "-Djava.compiler=NONE"; options[1].optionString = "-Djava.class.path=."; options[2].optionString = "-verbose:jni"; //用于跟踪运行时的信息 /*版本号设置不能漏*/ vm_args.version = JNI_VERSION_1_2; vm_args.nOptions = 3; vm_args.options = options; vm_args.ignoreUnrecognized = JNI_TRUE; res = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); //启动虚拟机 if (res < 0) { //未启动成功 fprintf(stderr, "Can't create Java VMn"); //输出错误 //exit(1); } (*jvm)->DestroyJavaVM(jvm); //释放虚拟机 fprintf(stdout, "Java VM destory.n"); //输出“虚拟机释放”信息 }