【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

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

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

关注

评论

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

Flink+Hologres助力伊的家电商平台建设新一代实时数仓

Apache Flink

flink

Bzz节点云矿机分币系统开发,云算力矿机租赁

超全Redis命令总结,墙裂建议收藏,说不定就用上了呢

北游学Java

Java redis

RDMA打造存储利器

焱融科技

文件 高性能 数据中心 分布式存储

「区块链+游戏」背后能否诞生下一个腾讯?

CECBC

阿里首次公布 Java10W 字面试复盘笔记,面面俱到、太全了

Java 程序员 架构 面试

Zilliz 陈室余:女性的独特洞察,可能为开源发现新机遇 | ECUG Meetup 讲师专访

七牛云

数据库 开源 音视频 Meetup Milvus

性能排查常用Linux命令

hasWhere

直呼内行!阿里大佬离职带出内网专属“Spring Security Oauth2.0”学习笔记

Java 程序员 架构 面试 微服务

我以为我对Mysql很熟,直到遇到了阿里这份笔记

Java架构师迁哥

JavaWeb 项目服务器部署详细教程(MySQL + JDK + Tomcat)

若尘

MySQL jdk javaWeb java编程 6月日更

Python——嵌套

在即

6月日更

cpu突然变高定位步骤

hasWhere

Java版本发布历史

hasWhere

IDEA搭建DCM4CHEE开发环境

birdbro

intellij-idea 医学影像 DICOM PACS DCM4CHE

实测 Google 全同态加密FHE,效果如何?

瑚琏

机器学习 隐私计算 多方安全计算 富数科技 Avatar2.0

区块链电子合同技术方案,区块链电子合同平台

13530558032

618技术特辑(四)疯狂剁手的同时,电商隐私安全你注意到了吗?

华为云开发者联盟

电商 数据安全 云安全 618 隐私安全

Java性能问题定位命令

hasWhere

架构训练营模块 6 作业 - 江哲

江哲

开发效率提升50%以上,爱奇艺官网主站的Nuxt实践

爱奇艺技术产品团队

大前端 开发 nuxt

AI 转型必看|算法工程师的 AI 启示录

百度大脑

人工智能

恭喜埃文科技入选“创新能力百强企业”!

郑州埃文科技

Cilium 首次集成国内云服务,阿里云 ENI 被纳入新版本特性

阿里巴巴云原生

容器 云原生

JAVA语言基础(五)--数组

加百利

Java 后端 6月日更

中国信通院云大所与dbaplus社群开启战略合作,共同推动多项标准落地

dbaplus社群

技术干货 | Windows桌面端录屏采集实现教程

ZEGO即构

RTC 录屏采集

区块链赋能农业振兴,农产品溯源系统

13530558032

Windows Core Audio 音频开发技术指南

拍乐云Pano

华云大咖说 | 华云数据与福昕鲲鹏携手共建国产云生态

华云数据

干货|车来了APM应用性能体验实践

APM App 稳定性 APP稳定性

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