写点什么

面向.NET 平台的 Java 1.5

  • 2008-12-18
  • 本文字数:991 字

    阅读完需:约 3 分钟

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

2008-12-18 08:042267
用户头像

发布了 88 篇内容, 共 264.9 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

你还在为-TCP-重传、滑动窗口、流量控制、拥塞控制发愁吗

android 程序员 移动开发

全新Android-Material-组件你在用了吗?

android 程序员 移动开发

再见!杭州!再见!阿里巴巴

android 程序员 移动开发

凭你的技术“你能做个淘宝、微信吗?

android 程序员 移动开发

你知道Java类什么情况下会被初始化吗?

android 程序员 移动开发

加入 node 后 flannel 报错

ilinux

【Java对象拷贝机制】使用CGlib实现Bean拷贝(BeanCopier)

洛神灬殇

对象拷贝 11月日更 BeanCopier

全网独家盘点Android热修复方案(含阿里巴巴、美团、腾讯等

android 程序员 移动开发

图解Pandas的排名rank机制

Peter

Python 数据分析 pandas

再见吧 buildSrc, 拥抱 Composing builds 提升 Android 编译速度

android 程序员 移动开发

凭借这938页Android面试题合集,拿下了滴滴、美团、携程

android 程序员 移动开发

你知道 Android 面试官最喜欢问那些技术点嘛?这篇带你复盘往年面试题!

android 程序员 移动开发

使用协程优化你的业务

android 程序员 移动开发

gitlab-runner出现too many connections

ilinux

六年 Android 开发的涨薪之路,从15K涨到30K的面试解析

android 程序员 移动开发

使用Flutter完成10个商业项目后的经验教训

android 程序员 移动开发

关于Android内存泄漏的那些事

android 程序员 移动开发

关于提高编程思维与工作效率的总结

android 程序员 移动开发

几年开发两茫茫,且看我给你分析ContentProvider

android 程序员 移动开发

你是不是疯了,为什么字节跳动的Offer都不要了?

android 程序员 移动开发

删除/var/lib/cni更换网络插件但是kubernetes没有正常启动

ilinux

全面解析Android进阶面试常客之Handler

android 程序员 移动开发

六年老Android开发,突遇公司搬离上海无赔偿,我该怎么办?

android 程序员 移动开发

关于QPS高并发,你了解多少?

android 程序员 移动开发

你的产出是别的程序员的10倍,为什么无法获得10倍的工资?

android 程序员 移动开发

你知道App为什么会Crash吗?

android 程序员 移动开发

像奥利奥一样的双重安全措施,尽在 Android Oreo

android 程序员 移动开发

关于内存泄漏和内存溢出的那些事!

android 程序员 移动开发

删除calico换成flannel后,容器没有正常启动

ilinux

做了6年的Android,靠着这份900多页的PDF面试整理,薪资Double!

android 程序员 移动开发

关于listView(列表)的各种使用方法

android 程序员 移动开发

面向.NET平台的Java 1.5_Java_Jonathan Allen_InfoQ精选文章