项目需要,目前只有Java的库,只能在全C项目中想办法调用这个JAVA库, 那么这个时候就考虑用到libjvm.so来创建JVM来运行类。
1.在linux环境下安装jdk,在jdk中,包含以下文件 :
/usr/local/jdk1.8.0_131/include/jnk.h
/usr/local/jdk1.8.0_131/include/linux/jni_md.h
/usr/local/jdk1.8.0_131/jre/lib/i386/server/libjvm.so
2.编写需要被C调用的java类
package test;
public class HelloWorld {
public static int intMethod(int n){
return n*n;
}
public static boolean booleanMethod(boolean bool) {
return !bool;
}
public static void sayHello()
{
System.out.println("say Hello from C.");
}
}
里面有三个静态函数,分别为不同返回值,不同参数,
3.开始编写创建调用JVM的C代码了。
#include <jni.h>
//jni.h文件包含在 C 代码中所需要的 JNI 的所有类型和函数定义
#ifdef _WIN32
#define PATH_SEPARATOR ';'
#else
#define