1 #include "jni.h" 2 #include "windows.h" 3 #include "stdafx.h" 4 typedef jint (WINAPI *_CreateJavaVM)(JavaVM **, void **, void *); 5 int _tmain(int argc, _TCHAR* argv[]) 6 { 7 int res; 8 JavaVMInitArgs vm_args; 9 JavaVMOption options[3]; 10 JavaVM *jvm; 11 JNIEnv *env; 12 /*设置初始化参数*/ 13 options[0].optionString = "-Djava.compiler=NONE"; //Disabled JIT 14 options[1].optionString = "-Djava.class.path=.;hello.jar"; 15 options[2].optionString = "-verbose:NONE"; 16 vm_args.version = JNI_VERSION_1_6; 17 vm_args.nOptions = 3; 18 vm_args.options = options; 19 vm_args.ignoreUnrecognized = JNI_TRUE; 20 // Load jvm.dll 21 HINSTANCE hInstance = LoadLibrary(L"C://Program Files//Java//jre6//bin//client//jvm.dll"); 22 if (hInstance == NULL) 23 return false; 24 _CreateJavaVM m_CreateJavaVM = (_CreateJavaVM)GetProcAddress(hInstance, "JNI_CreateJavaVM"); 25 res = (*m_CreateJavaVM)(&jvm, (void**)&env, &vm_args); 26 if (res < 0) 27 return -1; 28 // Find the class 29 jclass HelloClass = env->FindClass("app/Hello"); 30 // Find the main method id 31 jmethodID Hello_main = 32 env-> GetStaticMethodID(HelloClass, "main", "([Ljava/lang/String;)V"); 33 // Call the main method. 34 env->CallStaticVoidMethod(HelloClass, Hello_main); 35 jvm->DestroyJavaVM(); 36 FreeLibrary(hInstance); 37 return 0; 38 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步