HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

Uber/Google Golang编码标准深度分析

俞凡

golang 最佳实践

2024中国云计算大分野:重回当年,还是走向未来?

脑极体

云计算

如何防止 Elasticsearch 服务 OOM ?

极限实验室

ES console Gateway easysearch

Vue3中的Hooks详解

秃头小帅oi

DAPP去中心化交易质押分红系统开发模式案例

l8l259l3365

掰扯掰扯需求分析:从工程到生活中的4个case

泊浮目

系统设计 需求分析

架构决策系列1:通用模型or专用模型

agnostic

模型设计 架构决策

Programming Abstractions in C阅读笔记:p308-p311

codists

国内主流AI大模型都是Python 开发的,国外AI大模型是什么语言开发的?为什么要用python?

算法的秘密

Amazon Q :企业级的对话智能导航

亚马逊云科技 (Amazon Web Services)

读TiDB源码聊设计:引子

泊浮目

分布式数据库 TiDB HTAP

QCN9274/Super WiFi 7: Explore the unlimited potential of next-generation networks

wallysSK

计算机研0该卷大模型还是自学研发呢?

算法的秘密

迷茫在森林中

少油少糖八分饱

读书 青春 爱情故事 村上春树 挪威的森林

内含资料下载丨黄东旭:2024 现代应用开发关键趋势——降低成本、简化架构

PingCAP

数据库 TiDB AI技术 应用开发

为什么说 TiDB 在线扩容对业务几乎没有影响

PingCAP

数据库 TiDB TiKV

AmzTrends x TiDB Serverless:通过云原生改造实现全局成本降低 80%

PingCAP

数据库 数据分析 云原生 TiDB

今天来聊聊Java的基本特性

伤感汤姆布利柏

小红书笔记详情API:为开发者开启的新世界大门

技术冰糖葫芦

API 接口 API】

LED户外广告屏寿命的关键因素及解决方案

Dylan

广告 维护 系统维护 LED显示屏 户外LED显示屏

CSM是什么意思?

源字节1号

软件开发 前端开发 后端开发 小程序开发

在Avalonia项目中使用MediatR和MS.DI库实现事件驱动通信

沙漠尽头的狼

Golang模糊测试实践

俞凡

golang 模糊测试

独立站的SEO优化:提升网站排名的秘诀

技术冰糖葫芦

API 接口

Programming Abstractions in C阅读笔记:p312-p326

codists

算法与数据结构

机器学习:解析未来的数据世界

快乐非自愿限量之名

已解决org.springframework.web.multipart.MultipartException处理多部分请求异常的正确解决方法,亲测有效!!!

小明Java问道之路

文心一言 VS 讯飞星火 VS chatgpt (206)-- 算法导论15.4 3题

福大大架构师每日一题

福大大架构师每日一题

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