首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 透過 IKVM 呼叫 Java 程式碼完整教學

     編輯:關於C#

前言

IKVM 讓 .NET 應用程式能直接載入並執行 Java 類別。本文記錄從下載元件到完成跨語言呼叫的完整步驟。

環境準備

  1. 下載 IKVM 組件:ikvm-0.40.0.1.zip、ikvmbin-0.40.0.1.zip、openjdk6-b12-stripped.zip。
  2. 解壓 ikvm-0.40.0.1.zip,將 %IKVM_HOME%\bin 加入系統 PATH。
  3. 取得 IKVM.OpenJDK.ClassLibrary.dll(可從 Debian IKVM 套件 ikvm_0.38.0.2+dfsg-2_all.deb 解壓取得,需 undeb 工具解壓 .deb 檔)。

建立 Java 類別並編譯

package com.helloikvm.simple;

public class SimpleReturnString {
    public String returnString() { return "Hello, IKVM!"; }
    public void throwException() throws Exception { throw new Exception("Hello, Exception!"); }
}

編譯並打包成 IKVM.jar。

轉換為 .NET 組件

ikvmc -out:IKVM.dll IKVM.jar

產生 IKVM.dll 供 C# 專案參考。

建立 C# 專案並加入參考

新增下列 DLL 參考:

  • %IKVM_HOME%\bin\IKVM.OpenJDK.Core.dll
  • %IKVM_HOME%\bin\IKVM.Runtime.dll
  • %IKVM_HOME%\bin\IKVM.Runtime.JNI.dll
  • IKVM.OpenJDK.ClassLibrary.dll(來自步驟 3)
  • 自行產生的 IKVM.dll

撰寫 C# 呼叫程式碼

using com.helloikvm.simple;

namespace IKVMTest {
    public partial class Form1 : Form {
        private void btnTest_Click(object sender, EventArgs e) {
            SimpleReturnString javaObj = new SimpleReturnString();
            string result = javaObj.returnString();
            txtTest.Text = result;
        }
    }
}

注意事項

  • Java 套件名稱需與 C# using 陳述式對應。
  • IKVM 版本差異可能導致 DLL 路徑不同,請依實際下載版本調整。
  • 例外處理:Java 拋出的例外會轉換為 .NET 例外,可直接 catch。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved