VS2013中使用JNI调用java的jar包并回调到C++

本文介绍了在VS2013中如何配置环境以使用JNI调用Java的jar包,并详细阐述了如何从C++代码中回调到Java,包括实例化JVM、注册native方法到JVM以及打包成.exe时携带JDK环境的步骤。通过这种方法,可以避免传统JNI动态库加载方式的限制。
摘要由CSDN通过智能技术生成

前言:使用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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值