public JNIEnv(IntPtr native) { this.envPtr = native; functions = *(*(JavaPtr*) native.ToPointer()).functions; InitMethods(); if (defaultVM == null) { defaultVM = GetJavaVM(); } }
public JNIEnv(IntPtr native) { this.envPtr = native; functions = *(*(JavaPtr *)native.ToPointer()).functions; InitMethods(); if (defaultVM == null) { defaultVM = GetJavaVM(); } }
static void Initialize(IntPtr vm) { myVM = JNIEnv.defaultVM = new JavaVM(vm); Log("Setting JVM"); var env = JNIEnv.GetEnvForVm(myVM); myMonoProxyClass = env.NewGlobalRef(env.FindClass("com/koushikdutta/monojavabridge/MonoProxy")); mySetGCHandle = env.GetMethodID(myMonoProxyClass, "setGCHandle", "(J)V"); myGetGCHandle = env.GetMethodID(myMonoProxyClass, "getGCHandle", "()J"); }
public JavaVM GetJavaVM() { if (javaVM == null) { IntPtr jvm; getJavaVM.Invoke(envPtr, out jvm); ExceptionTest(); javaVM = new JavaVM(jvm); } return(javaVM); }
public JavaVM GetJavaVM() { if (javaVM == null) { IntPtr jvm; getJavaVM.Invoke(envPtr, out jvm); ExceptionTest(); javaVM = new JavaVM(jvm); } return javaVM; }
public static JNIEnv GetEnvNoThrow(JavaVM vm) { if (threadJNIEnv == null) { JNIResult result = vm.AttachCurrentThreadAsDaemon(out threadJNIEnv, null); if (result != JNIResult.JNI_OK) { return(null); } } return(threadJNIEnv); }
public static JNIEnv GetEnvForVm(JavaVM vm) { if (threadJNIEnv == null) { JNIResult result = vm.AttachCurrentThreadAsDaemon(out threadJNIEnv, null); if (result != JNIResult.JNI_OK) { throw new JNIException("AttachCurrentThreadAsDaemon failed: " + result); } } return(threadJNIEnv); }
public static JNIEnv GetEnvForVm(JavaVM vm) { if (threadJNIEnv == null) { JNIResult result = vm.AttachCurrentThreadAsDaemon(out threadJNIEnv, null); if (result != JNIResult.JNI_OK) { throw new JNIException("AttachCurrentThreadAsDaemon failed: " + result); } } return threadJNIEnv; }
public JavaVM(IntPtr native) { if (defaultVM != null) throw new Exception("Why is a second VM being initialized?"); this.native = native; defaultVM = this; functions = *(*(JavaPtr*) native.ToPointer()).functions; Helper.GetDelegateForFunctionPointer(functions.AttachCurrentThreadAsDaemon, ref attachCurrentThreadAsDaemon); Helper.GetDelegateForFunctionPointer(functions.AttachCurrentThread, ref attachCurrentThread); Helper.GetDelegateForFunctionPointer(functions.DestroyJavaVM, ref destroyJavaVM); Helper.GetDelegateForFunctionPointer(functions.DetachCurrentThread, ref detachCurrentThread); Helper.GetDelegateForFunctionPointer(functions.GetEnv, ref getEnv); var env = JNIEnv.ThreadEnv; var classLoaderClass = env.FindClass("java/lang/ClassLoader"); findClass = env.GetMethodID(classLoaderClass, "findClass", "(Ljava/lang/String;)Ljava/lang/Class;"); }
public static JNIEnv GetEnvNoThrow(JavaVM vm) { if (threadJNIEnv == null) { JNIResult result = vm.AttachCurrentThreadAsDaemon(out threadJNIEnv, null); if (result != JNIResult.JNI_OK) { return null; } } return threadJNIEnv; }
public JniGlobalHandle(JniGlobalHandleNs handleValue, JavaVM javaVM) : base(IntPtr.Zero, true) { this.javaVM = javaVM; SetHandle(handleValue.handle); }
public JniGlobalHandle(IntPtr handleValue, JavaVM javaVM) : base(IntPtr.Zero, true) { this.javaVM = javaVM; SetHandle(handleValue); }