栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

C到Java的调用通过了,但是JVM以一种奇怪/无法解释的方式崩溃了

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

C到Java的调用通过了,但是JVM以一种奇怪/无法解释的方式崩溃了

问题已解决。

搜索更多内容后,我发现了这篇文章http://docs.oracle.com/javase/1.4.2/docs/guide/jni/jni-12.html#JNI_OnLoad

在它的底部附近是一个很好的示例,说明了如何传递多个选项以及如何命名它们。原来-Xcheck:jni是作为-
DXcheck:jni传递的(jni:pedantic也可以),当我将strcpy从代码中移出后,我不再获得崩溃转储。我怀疑这是罪魁祸首,但其中一个骗人。

这是更新的代码位:

JNIEnv* create_vm(JavaVM ** jvm){    JNIEnv *env;    JavaVMInitArgs vm_args;    JavaVMOption options[2];    options[0].optionString = CLASSPATH; //"-Djava.class.path=/scratch/workareas/JTest/Java/"    options[1].optionString = "-DXcheck:jni:pedantic";    vm_args.version = JNI_VERSION_1_6; //JDK version. This indicates version 1.6    vm_args.nOptions = 2;    vm_args.options = options;    vm_args.ignoreUnrecognized = JNI_TRUE; //drop unrecognized options    int ret = JNI_CreateJavaVM(jvm, (void**) &env, &vm_args);    if (ret < 0) printf("n<<<<< Unable to Launch JVM >>>>>n");    return env;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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