IKVM.NET 7.0 业已发布

  • Jeff Martin
  • 侯伯薇

2011 年 12 月 21 日

话题:Java.NET语言 & 开发

IKVM.NET 项目是对 Mono 和 Microsoft.NET 的 Java 实现,最近发布了7.0 版本。这个项目是由 Jeroen Frijters 开发的,设计初衷是为了架起 JVM 和.NET 平台之间的桥梁。IKVM.NET 提供了在.NET 上运行 Java 应用程序的功能,并支持微软的.NET 框架和 Mono 2.0。

IKVM.NET项目由以下组件构成:

.NET 中实现的 Java 虚拟机

对 Java 类库的.NET 实现

让 Java 和.NET 可互操作的工具

最新的版本中增加了多项新特性,包括专注于互操作的支持,这是基于 OpenJDK 7 b147 和 Java 7 JVM 的变更做出的。与上次发布的版本相比,此次做出的改善包括:

  • 在静态编译代码上的 Java 注解现在会返回为 java.lang.reflect.Proxy 对象,从而与假设总是如此的代码保持兼容。
  • 增加了从 java.lang.reflect.InvocationHandler 到 ikvm.runtime.Delegates 的托管转换(delegate conversion)。
  • 对构建和 JNI 代码的变更,以针对 Windows x86 和 x64 版本的本地 dll 使用不同的名称。
  • 保留 ikvmc 编译代码使用的反射字段(这并不是必须的,只是为了与之前被破坏的代码保持兼容)。
  • java.lang.AutoCloseable 和 System.IDisposable 之间的互操作。
  • 修正了 append 模式中的 java.io.FileOutputStream,以使用原子级的 append。
  • 为 ikvm.exe 增加了 -Xnoglobbing 选项。
  • 实现了双堆栈(dual stack)sockets(仅对 Windows Vista 及以上版本)。
  • 实现了 MBean 服务器。
  • 实现了 SocketChannel.sendOutOfBandData()。
  • 实现了 DatagramChannel 的 multicast 方法。
  • 删除了从 System.Security.VerificationException 向 java.lang.VerifyError 的映射。
  • IKVM.Reflection: 多项改善,以支持大部分托管的 PE 功能。(比 System.Reflection.Emit 要强大很多)。

发布声明声称,这个版本已经在 Windows 下通过了 32 位和 64 位的.NET Framework 2.0 SP2 和.NET 4.0 的测试。

查看英文原文:IKVM.NET 7.0 Released

Java.NET语言 & 开发