写点什么

面向.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:042247
用户头像

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

关注

评论

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

我学编程时最后悔的事!

程序员鱼皮

Java c++ Python 大前端 后端

使用数据库乐观锁的方式解决数值累加的问题

陈靓-哲露

学习下服务器端漏洞,受益匪浅!

网络安全学海

运维 网络安全 信息安全 漏洞扫描 渗透测试·

Apache Druid 简介

HoneyMoose

从鉴黄师到阿里程序员,我成功逆袭上岸

Java 编程 程序员 计算机

大三就拿到字节提前批,你不想成长,生活总会逼着你成长

Java架构师迁哥

怎么才能写出100个用户体验的关键时刻?

石云升

读书笔记 用户体验 关键时刻 7月日更

什么是 Druid

HoneyMoose

根据四个商业指标找到MOT

石云升

读书笔记 用户体验 商业洞察 关键时刻 7月日更

大厂的产品研发流程,你知道么?

Simon郎

产品 研发体系 大厂 互联网公司

不要让这2个坏习惯限制了你的成长

俞凡

认知

Go语言:运行时反射,深度解析!

微客鸟窝

Go 语言

实践解析丨如何通过 WebAssembly 在 Web 进行实时视频人像分割

声网

大前端 WebRTC webassembly

结构化流-Structured Streaming(八-下)

Databri_AI

spark 流式计算框架 structuredStreaming

加速基因测序进程,北鲲云高性能计算平台再发力

北鲲云

58字节常量池面试题,你如何应对?

卢卡多多

intern 字符串 7月日更

Linux之cal命令

入门小站

Linux

微观管理?

escray

学习 极客时间 朱赟的技术管理课 7月日更

【Kafka技术专题】「实践操作篇」单机部署实践手册(2.8.0)

洛神灬殇

kafka MQ kafka配置 消息队列 kafka架构

如何在Go 服务中做链路追踪

Rayjun

微服务 Go 语言

去阿里应聘P7Java岗,都会被问到哪些问题?

Java架构师迁哥

上线仅7天,GitHub已标星48.4k!原来是阿里巴巴内部《高并发系统设计》

Java redis 编程 架构 面试

线上教育培训机构如何推广自己

石头IT视角

极光开发者周刊【No.0723】

极光JIGUANG

C# 三个Timer

喵叔

7月日更

从鉴黄师到阿里程序员,我成功拿下阿里offer

白亦杨

Java 编程 程序员 计算机

完整视频+源码!十六天带你精通基于Spring Cloud微服务电商项目

Java架构追梦

Java 架构 面试 微服务 SpringCloud

网络攻防学习笔记 Day83

穿过生命散发芬芳

网络攻防 7月日更

在线条码生成器

入门小站

工具

我应该在什么时候使用 Apache Druid

HoneyMoose

Docker的学习体验

吴脑的键客

,docker

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