コード例 #1
0
        static void Main(string[] args)
        {
            string     codeBase   = Assembly.GetExecutingAssembly().CodeBase;
            UriBuilder uri        = new UriBuilder(codeBase);
            string     workingDir = Path.GetDirectoryName(Uri.UnescapeDataString(uri.Path)) + Path.DirectorySeparatorChar;

            // Instantiate the JNI interface assembly
            JavaNativeInterface         jni     = new JavaNativeInterface();
            Dictionary <string, string> options = new Dictionary <string, string>();

            // Setting the class path to the jar that containes the classes to use
            options.Add("-Djava.class.path",
                        workingDir + "target\\SampleJavaApplication-0.0.1-SNAPSHOT.jar");
            // If your jar need other jars as dependencies, you may need to add them in the classpath :
            // + ";" + workingDir + "target\\dependency.jar");

            // Load a new JVM
            jni.LoadVM(options, false);
            try {
                IntPtr SampleApplicationClass  = IntPtr.Zero;
                IntPtr SampleApplicationObject = jni.InstantiateJavaObject("org/daisy/jnet/SampleApplication", out SampleApplicationClass);
                string testString = jni.CallMethod <string>(SampleApplicationClass, SampleApplicationObject, "getTestString", "()Ljava/lang/String;");
                Console.WriteLine(testString);

                SampleApplicationObject = jni.InstantiateJavaObject("org/daisy/jnet/SampleApplication", out SampleApplicationClass, "(Ljava/lang/String;)V", "I'm a string sent from C#");
                testString = jni.CallMethod <string>(SampleApplicationClass, SampleApplicationObject, "getTestString", "()Ljava/lang/String;");
                Console.WriteLine(testString);
            } catch (Exception e) {
                Console.WriteLine(e.ToString());
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: EguniE/Eguni_Blog
        static void Main(string[] args)
        {
            // JVM Log option Params Dictionary
            Dictionary<string, string> jvmParameters = new Dictionary<string, string>();
            JavaNativeInterface Java = new JavaNativeInterface();

            // Set class path
            string strKey = "-Djava.class.path";
            string strValue = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            jvmParameters.Add(strKey, strValue);

            Java.LoadVM(jvmParameters, false);
            // Instance Create: HelloWorld
            Java.InstantiateJavaObject("HelloWorld");

            // Print java version
            System.Console.WriteLine(Java.JavaVersion());

            // Params lists for JNI
            List<object> jniParam = new List<object>();

            // Call HelloWorldProcedure()
            jniParam.Add("WestWoodForever");
            Java.CallVoidMethod("HelloWorldProcedure", "(Ljava/lang/String;)V", jniParam);

            // Call AddTwoNumbers()
            jniParam.Clear();
            jniParam.Add(2);
            jniParam.Add(5);
            jniParam.Add("WestWoodForever");
            string returnJNI = Java.CallMethod<int>("AddTwoNumbers", "((IILjava/lang/String;)I", jniParam).ToString();
            System.Console.WriteLine(returnJNI);

            Java.Dispose();
        }
コード例 #3
0
ファイル: JNITestHarness.cs プロジェクト: EguniE/Eguni_Blog
        private void btJavaFunction_Click(object sender, EventArgs e)
        {
            List <object> olParameters = new List <object>();

            //olParameters.Add((int)nudFirstValue.Value);
            //olParameters.Add((int)nudSecondValue.Value);
            //olParameters.Add(tbUserName.Text);

            //string msg = Java.CallMethod<int>("AddTwoNumbers", "(IILjava/lang/String;)I", olParameters).ToString();

            int[] intArr = new int[2] {
                (int)nudFirstValue.Value, (int)nudSecondValue.Value
            };

            olParameters.Clear();
            olParameters.Add(intArr);
            olParameters.Add(tbUserName.Text);
            //      Java.CallVoidMethod("AddArray", "([I)V", olParameters);
            string msg = Java.CallMethod <int>("AddTwoNumbersFromArray", "([ILjava/lang/String;)I", olParameters).ToString(CultureInfo.InvariantCulture);

            MessageBox.Show("The sum of the two numbers is : " + msg);
            statusStrip1.Items[0].Text = "AddTwoNumbers returned : " + msg;;
        }
コード例 #4
0
        static void Main(string[] args)
        {
            // JVM Log option Params Dictionary
            Dictionary <string, string> jvmParameters = new Dictionary <string, string>();
            JavaNativeInterface         Java          = new JavaNativeInterface();

            // Set class path
            string strKey   = "-Djava.class.path";
            string strValue = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            jvmParameters.Add(strKey, strValue);

            Java.LoadVM(jvmParameters, false);
            // Instance Create: HelloWorld
            Java.InstantiateJavaObject("HelloWorld");

            // Print java version
            System.Console.WriteLine(Java.JavaVersion());

            // Params lists for JNI
            List <object> jniParam = new List <object>();

            // Call HelloWorldProcedure()
            jniParam.Add("WestWoodForever");
            Java.CallVoidMethod("HelloWorldProcedure", "(Ljava/lang/String;)V", jniParam);

            // Call AddTwoNumbers()
            jniParam.Clear();
            jniParam.Add(2);
            jniParam.Add(5);
            jniParam.Add("WestWoodForever");
            string returnJNI = Java.CallMethod <int>("AddTwoNumbers", "((IILjava/lang/String;)I", jniParam).ToString();

            System.Console.WriteLine(returnJNI);

            Java.Dispose();
        }