首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JNI调用API创建java7 JVM

使用JNI调用API创建java7 JVM
EN

Stack Overflow用户
提问于 2012-09-11 17:18:18
回答 2查看 5.5K关注 0票数 5

我们在java 7中有一个类,需要从本机代码中加载它。我已经在JNI中使用了java 6,但是java 6不能加载该类。因此,我安装了新的JDK,更改了VC项目中的包含目录和链接引用等。直到我想从JNI启动jre7之前,一切都很顺利:

JNI_CreateJavaVMvm_args.version参数中使用java版本,但对于比1.6更新的版本没有任何定义。

代码语言:javascript
复制
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);

FindClass类调用java7显然会产生一个UnsupportedClassVersionError。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-11 19:18:50

问题在于path环境变量,即jre6之前的jre7。在visual ++->属性页->调试->环境中,我更改为: path=C:\Java\jre7\bin;C:\Java\jre7\bin\client;%path%

或者直接打开:我的计算机->属性->高级->环境变量

票数 1
EN

Stack Overflow用户

发布于 2013-06-19 07:18:56

对于Mac用户,我强烈建议阅读本文:

如何在OSX10.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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12374765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档