BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

面向.NET平台的Java 1.5

| 作者 Jonathan Allen 关注 529 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2008年12月19日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Ja.NET是Java 1.5 SE的.NET平台版本。其编译器基于Eclipse JDT,同时JDT也得到了改良以便生成IL和Java字节码。传统上,Java会将每个类编译成一个单独的文件,但是对.NET来说这样做的代价太高了。为了解决这个问题,Ja.NET使用了一个基于Cecil的工具来创建更大的程序集,这与Java创建Jar文件的方式很相似。

为了获得更好的类库支持,Ja.NET基于开源项目Apache Harmony。Dave Tillman说到:

Harmony吸引我的一个特性是它的类库已经很好的按模块进行组织了,这与OpenJDK正好相反。例如,你会看到一个LUNI模块,它代表了Lang-Util-Net-Io,这是一个NIO模块,诸如此类。顺便说一下,我实际上已经使用OpenJDK并用其在我的机器上创建了一个可运行的版本,但是后来我还是选择了Harmony。

当我们与Dave交流时,他谈到了一些必要的细节:

当前Ja.NET SE项目只关注于Java SE,它向.NET提供了Java 5 JDK。在转向更高的层次(Java EE)前,我认为需要先将SE部分完成,而且要正确地完成。所有的Java 5 SE类库都包含在了发布包中,但是其中有些功能是不完全的。要知道我做从事的工作是基于几个反潮流的项目(请查看我最新的博文以了解详细信息——www.janetdev.org)之上的。最大的一个当属Apache Harmony项目。Harmony已经为几乎所有(99.x%)的Java 5 SE类库开发了代码,包括Swing、AWT等等。同时他们还为Java ME和Java 6进行了开发。

Ja.NET SE类库来源于Harmony的代码,现在我将Harmony的所有代码都构建到了.NET程序集中并将其放到发布包中。但此时我们并未完成所有的工作(修改类库以将其绑定到相应的.NET/CLR服务之上)。例如,将Swing/AWT绑定到WPF之上的工作就尚未完成。这也正是我到处寻找参与者的原因所在:-)。为了做到这一点,开发者需要利用Harmony提供的Swing/AWT代码基,将其分解然后在代码中的恰当位置上加入对WPF API的调用。所有的Harmony Swing/AWT代码已经被编译到.NET程序集中了,他么就不再回调WPF了。

有很多核心的类库(反射、并发、类加载、io、nio字符集等等)可供Ja.NET SE工具(编译器、程序集合并)所用。我无需对代码做任何改变就可以让JUnit 4.3/4.5、Xerces 2.8及Ant 1.7.0运行在.NET上。当然,我还会增加更多的内容!:-)

当前Ja.NET可运行在Microsoft CLR和Novell Mono平台上。

查看英文原文:Java 1.5 for the .NET Platform

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

很好,大融合,节省资源 by Mao Sheng

如果真的做好了融合,日后两个平台的抗争只不过是看谁的VM做得好了,上层应用是统一的。BTW,Apache Harmony真的不错呀,河蟹果然很重要呀~

不错不错 by gu fahua

以后用java写gui程序,直接跑在 windows 的 .net上。

真是个好消息! by zhen liu

以后再也不会为选择Java还是.Net而烦恼了,写一次就能适用这两大平台!强!!
希望Java EE快点出来!

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT