这个不是简单的运行java -jar,这样的话还不如写脚本.这里是直接dlopen加载的libjvm.so,然后dlsym得到 JNI_CreateJavaVM符号的地址. 然后创建一个VM,最后跑起来.用了jni.h 和jni_md.h,但是函数指针什么的需要自己typedef一下,不链接到libjvm.so因为 LP_LIBRARY_PATH还是没配置文件玩起来好.
typedef jint(*CreateJavaRuntime)(JavaVM **pvm,JNIEnv **env,void *args); auto jdkenv=getenv("JAVA_HOME"); javapath=ini.GetValue("Environment","JDKRoot",jdkenv);////defualt getenv JAVA_HOME auto jarfile=ini.GetValue("App","Path"); #ifdef __x86_64__ jvmso=javapath+"/jre/lib/amd64/server/libjvm.so"; jvmso1=javapath+"/lib/amd64/server/libjvm.so"; #elif defined(__i686__) jvmso=javapath+"/jre/lib/server/libjvm.so"; jvmso1=javapath+"/lib/server/libjvm.so"; #endif 开始吐槽吧.
