⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jnidemo2.cpp

📁 精通Java核心技术的随书源代码
💻 CPP
字号:
#include <jni.h>
	
#ifdef _WIN32
#define PATH_SEPARATOR ';'
#else
#define PATH_SEPARATOR ':'
#endif
	 
int main()
{
	JavaVMOption options[1];
	JNIEnv *env;
	JavaVM *jvm;
	JavaVMInitArgs vm_args;
	long status;
	jclass cls;
	jmethodID mid;
	jint square;
	jboolean not;
	
	options[0].optionString = "-Djava.class.path=.";
	memset(&vm_args, 0, sizeof(vm_args));
	vm_args.version = JNI_VERSION_1_2;
	vm_args.nOptions = 1;
	vm_args.options = options;
	status = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);

	if (status != JNI_ERR)
	{
		cls = (*env)->FindClass(env, "JNIDemo2");
		if(cls !=0)
  		{  
          	mid = (*env)->GetStaticMethodID(env, cls, "intMethod", "(I)I");
	         	if(mid !=0)
	         	{  
        	   		square = (*env)->CallStaticIntMethod(env, cls, mid, 5);
		        	printf("Result of intMethod: %d\n", square);
	         	}

	         	mid = (*env)->GetStaticMethodID(env, cls, "booleanMethod", "(Z)Z");
	         	if(mid !=0)
	         	{
	          		not = (*env)->CallStaticBooleanMethod(env, cls, mid, 1);
		        	printf("Result of booleanMethod: %d\n", not);
	         	}
      	}

		(*jvm)->DestroyJavaVM(jvm);
   		return 0;
 	}
	else
		return -1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -