程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#和Java交互相關研究

C#和Java交互相關研究

編輯:C#入門知識

之前總覺得C#和Java可以交互應用,但是由於時間以及其他方面的原因,一直沒有調研。今天抽空搜了一下,終於折騰出來了。

 

以下是我自己就C#和Java整合的一些提問和分析,如果有不對的地方,請路過的各位大蝦給予指出。3Q!

 

問題來了:

1、C#和Java如何整合?

2、為什麼C#(.Net)要和Java整合?

3、Java和C#整合時,Java主要扮演什麼角色?C#扮演什麼角色?

答案一一揭曉:

1、C#和Java整合大致有4條路可以走。

 

  1.1 把Java包轉換為DLL或者EXE後注冊為com組件,之後調用;

  1.2 使用web service;(http://www.codeproject.com/Articles/32313/How-to-invoke-Java-web-service-in-ASP-net-using-C)

  1.3 使用中間件;比如一個商業的中間件:http://j-integra.intrinsyc.com/;

  1.4 使用 IKVM.NET,這是一個在.net 下實現的Java VM,所以在經過一個轉換後,直接跑Java的東西;

(以上4點,是我在網上搜的)

 

   我主要說第四點:使用IKVM.NET。

  a:下載ikvm-0.40.0.1.zip;ikvmbin-0.40.0.1.zip;openjdk6-b12-stripped.zip;

解壓ikvm-0.40.0.1.zip,並將%IKVM_HOME%\bin添加到path中。此處的%IKVM_HOME%是指解壓後ikvm的主目錄。

  b:建立一個JavaProject,自定義包、類、需要透露給外界的方法,然後、將這個JavaProject打包成jar文件。(eclipse和myeclipse都自帶的,或者你可以顯擺一下,用黑框框敲幾個代碼整)。

  c:狸貓換太子:jar>>dll

   打開黑框框(即:win+r,cmd,進入到%IKVM_HOME%\bin的目錄下),

執行:ikvmc -out:dllFileNameOrPath.dll javaFileNameOrPath.jar

此時,就會在%IKVM_HOME%\bin目錄下或者指定的Path下,會出現一個dllFileNameOrPath.dll文件,置於你的.Net項目中,添加引用,與此同時,請將

       %IKVM_HOME%\bin\IKVM.OpenJDK.Core.dll

  %IKVM_HOME%\bin\IKVM.Runtime.dll

  %IKVM_HOME%\bin\IKVM.Runtime.JNI.dll

添加到你的.Net項目中,切記!

   其中,using 後面跟java類的包名。

 

2、C#和Java整合,不,應該是.Net和Java整合。為啥要整合?

   在業間,有人士稱,.Net開發除服務層以外的,開發速度快,效率高。而Java做後台服務,安全性、可擴展性高。所以才有牛人將兩者整合。目前.Net和Java整合技術的應用,算是一個新旗幟,但目前已經被應用於實際開發了。

 

3、正如2所說,.Net和Java整合,Java主要承擔DAL,也就是和DB進行主要的交互,以及其他通信。而.Net主要承擔BLL。

 

以上是小弟的分析,如果說的不對,請各位路過大神指正!

謝謝!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved