使用Ja.Net實現(xiàn)Java和.NET的完美互用
提起Java和.NET,大家都不陌生。因為它們是當今做開發(fā)的主要力量。但這卻一直是兩個不同的世界。其實,這兩個世界不是完全分隔的,我們可以用Ja.Net來實現(xiàn)Java與.Net的互用性。
Ja.Net是一個Java 1.5和.NET的接口平臺,Ja.NET可視為Java之上的.NET Remoting(Microsoft .NET Framework內(nèi)的主要組件)的堆棧實作,而在Java平臺上提供Ja.NET的執(zhí)行時期模塊(Run time),可支持TCP/IP、HTTP等溝通管道,也可同時支持SOAP或是二進制互通協(xié)議以提升溝通效率。透過此執(zhí)行時期模塊,.NET與Java /J2EE的數(shù)據(jù)類型不僅可以對應(yīng),還能進行雙向的溝通。
Ja.Net的編譯器基于Eclipse JDT,Eclipse JDT能夠修改生成IL,也能生成Java字節(jié)碼。Java一般編譯每個class為一個單獨文件,但是.NET不能接收分散文件,一個基于 Cecil 的工具被使用來創(chuàng)建更大的文件集合類似Jar文件,解決了這個問題。
另外,為了從頭開始獲得庫支持,Ja.Net JDK 基于開源項目Apache Harmony開發(fā)。Apache Harmony是開放源碼Java SE實現(xiàn)。為什么不選擇OpenJDK呢,Ja.Net項目負責人Dave Tillman認為Harmony的結(jié)構(gòu)更加模塊化,組織更加良好。
以及Ja.Net SE項目主要著重于Java SE,為.NET提供Java 5 JDK,目前SE項目已經(jīng)完全完成,并且Ja.NET SE:New Build 1.5.0已經(jīng)發(fā)布。Ja.NET SE class從Harmony派生而來,但是還有一些模塊沒有完成與.NET/CLR服務(wù)的互聯(lián),比如AWT/Swing,這個項目正在發(fā)展中,正征集開發(fā)者貢獻代碼。
Ja.NET目前能夠同時運行在微軟CLR(Common Language Runtime公共語言運行時,是微軟公司開發(fā)的一個虛擬機,用于運行基于中間代碼Intermediate Language,簡稱IL的.NET程序)和Novell的Mono平臺上(Mono:微軟.NET框架的開源版本,允許為Windows框架編寫的應(yīng)用程序在Linux和其它非微軟平臺上運行)。
對Java和.NET程序互用性有興趣,推薦嘗試Ja.Net。
Ja.Net:http://sourceforge.net/projects/janetdev/
【編輯推薦】