熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

是否能讓JAVA和.NET框架共存?[3]

2022-06-13   來源: .NET編程 

  NET和JAVA的整合

  無論從商業角度還是開發者角度甚至是源碼開放組織的角度NET和JAVA的整合都顯得很有必要下面就二者的整合做出一個提前的估計(所有的相關項目被分為ABC三個組以便於看清它們之間的關系當然這些項目也完全可以被獨立的操作)

  JVM to CIL compiler (Group A)

  Java API bridge for NET API and lib (Group A)

  Java compiler for CLI (Group A)

  CLI ports for Palm OS Linux and Solaris (Group B)

  NET API and lib bridge for Palm OS API (Group B)

  NET API and lib bridge for POSIX (Group B)

  CIL compiler to JVM (Group C)

  NET API and lib bridge for Java API (Group C)

  C# compiler for JVM (Group C)

  A組的項目

  該組項目的主要目的是使現有的JAVA二進制代碼能夠在NET平台上被執行這意味著JAVA的二進制碼(後綴為class的文件)不用再從源代碼進行重編譯就能運行於NET平台了當然這些class文件在安裝或執行時會被編譯就好象微軟的運行時和JIT對微軟中間語言所做的那樣

  JVM to CIL compiler

  一個編譯器輸入JAVA字節碼輸出MSIL代碼——它將被編譯為可執行文件(如EXEDLLMSI等)Java API bridge for NET API and lib在這裡JAVA API與每一個相應NET API之間將建立一個映射比如Java API中的javaioFile將被映射到NET的SystemIOFile類相對於比較簡單的IO類的映射還有一些映射比較復雜比如javanet包到NET的SYSTEMNET的映射這裡存在的一個問題是該項工作如果在C#中進行開發會比較方便而假如在JAVA中實現則需要有一個直接指向CLI(Common Language Interface)的編譯器它能生成符合CLS(Common Language Specification)標准的CIL(Common Intermediate Language)代碼

  可以通過編寫一個向導式的工具來避免一些煩瑣的工作例如可以利用C#或JAVA來編寫一個基於XML格式的對象描述用它生成一個框架代碼然後根據需要向其中手寫添加其他代碼如果你確實打算進行這樣的操作在http://xmlapacheorg站點你可以找到很多有用的資料微軟的過時的JAVA SDK中也有類似的工具可供參考——一個用來生成Jdirect(JDirect was the Microsofts hack for implementing native interfaces)代碼的工具利用它可以實現訪問本地WIN APISDK中有該工具的源代碼順便提一句由於這裡涉及到微軟的一套獨特的JAVA擴展標記因此SUN和微軟一直就此問題打著官司

  Java compiler for CLI

  它將JAVA源代碼(使用NET框架API)編譯為可執行文件的格式如EXEDLL等這個工作是在最高的層面上對JAVA和NET框架進行整合這將為今後直接利用JAVA在NET框架下創建應用打好基礎

  對現有JAVA編譯器的代碼生成部分重寫將是此項工作一個比較便捷的解決方案就我個人的意見SUN會根據開放源代碼的標准開發這樣的一套編譯器當然這樣的一些改造計劃需要對一些JAVA類進行調整

[]  []  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/15119.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.