コード例 #1
0
ファイル: UnitTest1.cs プロジェクト: jlroviramartin/jni4net
        private void GC(JNIEnv jniEnv)
        {
            JClass    systemClass    = jniEnv.FindClass("java/lang/System");
            JMethodID systemGCMethod = jniEnv.GetStaticMethodID(systemClass, "gc", "()V");

            jniEnv.CallStaticVoidMethod(systemClass, systemGCMethod, JValue.Empty);
        }
コード例 #2
0
ファイル: UnitTest1.cs プロジェクト: jlroviramartin/jni4net
        private void Test(JNIEnv jniEnv, JClass jclazz)
        {
            JMethodID    jgetConstructors = jniEnv.GetMethodID(jclazz, "getConstructors", "()[Ljava.lang.reflect;");
            JObject      ret   = jniEnv.CallObjectMethod(jclazz, jgetConstructors, JValue.Empty);
            JObjectArray array = ret.toJObjectArray();

            foreach (JObject jobj in array.GetEnumerator(jniEnv))
            {
            }
        }
コード例 #3
0
ファイル: UnitTest1.cs プロジェクト: jlroviramartin/jni4net
        public void TestMethod1()
        {
            Setup();

            es.jni.JavaVMOption options = new JavaVMOption();
            //options.optionString = $@"-Djava.class.path={jdkPath}";
            options.optionString = "";

            JavaVMInitArgs vm_args = JavaVMInitArgs.create(JNI.JNI_VERSION_1_8, 1);

            vm_args.set(0, options);

            int flags;

            Ref_JavaVM refJavaVM = new Ref_JavaVM();
            Ref_JNIEnv refJNIEnv = new Ref_JNIEnv();

            flags = JavaVM.CreateJavaVM(refJavaVM, refJNIEnv, vm_args);
            if (flags == JNI.JNI_ERR)
            {
                String msg = "Error creando la maquina virtual";
                Debug.WriteLine(msg);
                throw new Exception(msg);
            }
            JavaVM javaVM = refJavaVM.getValue();
            JNIEnv jniEnv = refJNIEnv.getValue();

            JClass jclazz = jniEnv.FindClass("java/lang/Object");

            Debug.WriteLine("jclazz " + jclazz);

            GC(jniEnv);

            JMethodID jinit     = jniEnv.GetMethodID(jclazz, "<init>", "()V");
            JObject   jinstance = jniEnv.NewObject(jclazz, jinit, new JValue[0]);

            JObject jref = jniEnv.NewGlobalRef(jinstance);

            Test(jniEnv, jclazz);

            jniEnv.DeleteLocalRef(jclazz);
        }
コード例 #4
0
ファイル: JMethodID.cs プロジェクト: jlroviramartin/jni4net
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(JMethodID obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }