gpt4 book ai didi

c++ - 使用 JNI 调用 API 创建 java7 JVM

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:49 25 4
gpt4 key购买 nike

我们在 Java 7 中有一个类,需要从 native 代码加载它。我已经将 java 6 与 JNI 一起使用,但 java 6 无法加载该类。所以我安装了新的 JDK,更改了我的 VC 项目中的包含目录和链接引用等。一切都很好,直到我想从 JNI 启动 jre7:

JNI_CreateJavaVM 采用 vm_args.version 参数中的 java 版本,但没有定义高于 1.6 的版本。

JavaVMInitArgs vm_args;
...
vm_args.version = JNI_VERSION_1_6;
vm_args.nOptions = 2;
vm_args.options = options;
vm_args.ignoreUnrecognized = 0;

int ret = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);

为 java7 类调用 FindClass 显然会产生 UnsupportedClassVersionError

问题:如何使用 JNI_CreateJavaVM 创建 java7 JVM?

最佳答案

对于 Mac 用户,我强烈推荐阅读这篇文章:

如何在 OS X 10.8.2 上的 Java 7 和 Java 6 之间切换? https://superuser.com/questions/490425/how-do-i-switch-between-java-7-and-java-6-on-os-x-10-8-2

我成功编译并运行了 JNI 示例,在该示例中,我从我创建的 Java 类中调用了一些静态方法。我通过像这样调用“java_home”解决了这个问题:

/usr/libexec/java_home -v 1.6.0_45 --exec javac Sample.java

关于c++ - 使用 JNI 调用 API 创建 java7 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12374765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com