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登出命令