#define MAIN_CLASS "test/JNI_cCalljava_test"
test是java里面的包名
JNI_cCalljava_test是类名
cls = env->FindClass(MAIN_CLASS);
调用的关键,将你的java程序打成jar包。然后解压出来,找到里面的 包名文件夹/类名 test/JNI_cCalljava.class
那么这样在findclaass的是就能找到要调用的类了。
第二个关键是:将你的c++程序输出到jdk安装位置【包括调试工作目录】,比如我的是 C:\Program Files\Java\jdk1.7.0_80\jre\bin\server这个文件夹。
对了,我的电脑系统是64位win7,所以需要用x64位来编译才能通过。
#include <jni.h>
#pragma comment(lib,"../../lib/jvm.lib")
上面2句是包含jvm这 个库,jvm.dll在jdk安装目录里面找。
上面2个关键都搞懂了,就可以利用jvm来调用了。