1. 程式人生 > >C#.NET呼叫jar包(java環境配置及ikvm安裝)

C#.NET呼叫jar包(java環境配置及ikvm安裝)

在ASP.NET(C#)專案中需要呼叫java中的方法,在VS平臺中簡單呼叫jar包的方法就是將jar包轉換成dll庫,之後 通過引用dll庫,就可以直接使用java中的類了。C#語言和Java語言有著很多相似之處,其中的jar包和dll庫就是非常相似的。
java se 6環境配置
注意:java環境需要安裝 java SE 6 版本  ,否則會出現原始碼格式無法識別的問題
簡單說下java 安裝:
1.去官方網站下載jdk 
JAVA SE 6 :http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html


2.下載安裝包後直接安裝即可,然後需要對環境變數進行配置

新建  CLASSPATH(最前面需要加 【.;】點號和分號表示在所有目錄下都可以使用java類)
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

新建 JAVA_HOME (設定為安裝jdk的目錄)
C:\Program Files (x86)\Java\jdk1.6.0_43

PATH變數中新增
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

3.執行cmd命令進行測試 


4.編譯一個java檔案進行測試 


5.編譯後並將建立的該類打包為jar檔案

IKVM.NET使用
Java環境配置後,需要下載一個IKVM.NET的工具 
IKVM.NET :http://www.ikvm.net/


去Download頁面,下載 ikvmbin-7.2.4630.5 包,之後將其解壓,並在【環境變數】->【系統變數】中設定path路徑,路徑為解壓的目錄

;D:\ikvm\bin

安裝完成後,可以開始將jar包轉為dll庫,使用一個命令即可

ikvmc -out:ikDllName.dll TestHw.jar //將jar檔案轉換成dll類庫

從java原始碼到dll庫用到的cmd命令如下圖 


javac HwJavaClass.java
jar cvf HwJarName.jar HwJavaClass.class
ikvmc -out:HwDllname.dll HwJarName.jar

在VS中使用jar轉換後的dll庫
這裡直接在ASP.NET專案中新建web窗體;引用IKVM建立的dll庫(除了自己建立的還需要引用另外三個IKVM自身的dll庫,在解壓目錄的bin檔案下) 


HwDllname.dll 
IKVM.OpenJDK.Core.dll 
IKVM.Runtime.dll 
IKVM.Runtime.JNI.dll

之後,可看到dll庫中存在名稱空間和類方法 


程式碼如下:

using System;

using nameSpaceH;       //package nameSpaceH

namespace ADOTest
{
    public partial class test123 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            HwJavaClass mao = new HwJavaClass();    //public class HwJavaClass(){}
            string a = mao.returnString();

            Response.Write(a);

        }
    }
}

DLL動態連結庫: 
DLL檔案中存放的是各類程式的函式(子過程)實現過程,當程式需要呼叫函式時需要先載入DLL,然後取得函式的地址,最後進行呼叫。使用DLL檔案的好處是程式不需要在執行之初載入所有程式碼,只有在程式需要某個函式的時候才從DLL中取出。另外,使用DLL檔案還可以減小程式的體積。

開啟控制面板,程式,開啟或關閉windows功能,勾選telnet客戶端 
然後輸入

telnet towel.blinkenlights.nl 
可以看到dos版星球大戰

輸入

shutdown -s -t 3600 
shutdown -a 
定時關機30分鐘之後,-a登出命令