前言:使用Cocos2dx的过程中,一直都是在Android平台上使用JNI,而Cocos2dx引擎中针对Android平台自带封装了一个JniHelper的帮助类,帮普通用户屏蔽了许多JNI的操作。而最近在做公司项目的时候,需要移植到Windows平台,由于使用到了第三方SDK的jar包,因此也需要使用到JNI,而这里就没有JniHelper这个类可以使用了,一切都得自己来,折腾了几天,终于搞定了。。。
一、环境配置
下载JDK并安装(我使用的版本jdk1.7.0_15 32位)。
1、在windows环境变量pathn中添加路径" ;%JAVA_HOME%\jre\bin\client "(其中的jvm.dll文件是必须的);
2、在VS(我使用的VS2013)中,右键点击项目》属性》链接器》常规》附加库目录 中添加路径:%JAVA_HOME%\jdk1.7.0_15\lib;
3、继续 右键点击项目》属性》链接器》输入》附加依赖项 中添加:jvm.lib;
4、配置jni.h和jni_md.h文件的搜索路径:右键点击项目》属性》C/C++》常规》附加包含目录,在其中添加路径%JAVA_HOME%\include和%JAVA_HOME%\include\win32两项。
二、编写JNI代码
1、实例化java虚拟机(JVM):
JavaVMOption options[4];
JavaVMInitArgs vm_args;
long status = 1;
options[0].optionString = "-Djava.compiler=NONE";
options[1].optionString = "-Djava.class.path=..\\xcase_window_sdk.jar"; // 这里是jar路径,..表示项目当前路径
options[2].optionString = "-verbose:NONE"; //
options[3].optionString = "-XX:+p