提起Java和.NET,大家都不陌生。因为它们是当今做开发的主要力量。但这却一直是两个不同的世界。其实,这两个世界不是完全分隔的,我们可以用Ja.Net来实现Java与.Net的互用性。
Ja.Net是一个Java 1.5和.NET的接口平台,Ja.NET可视为Java之上的.NET Remoting(Microsoft .NET Framework内的主要组件)的堆栈实作,而在Java平台上提供Ja.NET的执行时期模块(Run time),可支持TCP/IP、HTTP等沟通管道,也可同时支持SOAP或是二进制互通协议以提升沟通效率。透过此执行时期模块,.NET与Java /J2EE的数据类型不仅可以对应,还能进行双向的沟通。
Ja.Net的编译器基于Eclipse JDT,Eclipse JDT能够修改生成IL,也能生成Java字节码。Java一般编译每个class为一个单独文件,但是.NET不能接收分散文件,一个基于 Cecil 的工具被使用来创建更大的文件集合类似Jar文件,解决了这个问题。
另外,为了从头开始获得库支持,Ja.Net JDK 基于开源项目Apache Harmony开发。Apache Harmony是开放源码Java SE实现。为什么不选择OpenJDK呢,Ja.Net项目负责人Dave Tillman认为Harmony的结构更加模块化,组织更加良好。
以及Ja.Net SE项目主要着重于Java SE,为.NET提供Java 5 JDK,目前SE项目已经完全完成,并且Ja.NET SE:New Build 1.5.0已经发布。Ja.NET SE class从Harmony派生而来,但是还有一些模块没有完成与.NET/CLR服务的互联,比如AWT/Swing,这个项目正在发展中,正征集开发者贡献代码。
Ja.NET目前能够同时运行在微软CLR(Common Language Runtime公共语言运行时,是微软公司开发的一个虚拟机,用于运行基于中间代码Intermediate Language,简称IL的.NET程序)和Novell的Mono平台上(Mono:微软.NET框架的开源版本,允许为Windows框架编写的应用程序在Linux和其它非微软平台上运行)。
对Java和.NET程序互用性有兴趣,推荐尝试Ja.Net。
Ja.Net:http://sourceforge.net/projects/janetdev/
【编辑推荐】