在.NET/Mono上运行Java:Jeroens Frijters谈IKVM.NET

IKVM.NET(IKVM)是个面向.NET与Mono平台的JVM,用户可以通过它直接运行Java应用。近日,来自微软的Erik Meijer与IKVM创建者Jeroen Frijters讨论了该项目的几个方面。此次讨论的涉及面非常广,从IKVM的内核谈到了该项目的未来目标。其要点如下所示:

Frijters从2002年该项目启动开始就作为项目的主开发者。此次讨论首先从Frijters介绍IKVM是如何成为Mono项目的一部分 (形成一种双赢的局面,两个项目可以彼此贡献补丁)开始。从架构上来说,IKVM在.NET上完全实现出了Java的内存模型。Frijters尝试尽量 不使用包装器,在某些情况下需要通过包装器才能正确地处理Java的字符串接口。

如果代码运行在IKVM上,那么.NET开发者可以在Java代码中使用自定义属性。如果代码运行在IKVM上,那么Java与.NET这两个平台都可以使用属性。这样,开发者就可以在Java代码中使用.NET自定义属性,也可以在C#类与成员中使用Java注解。

在背后,IKVM的运行时与编译器主要都是使用C#编写的。Frijters可以使用公开的Java代码(来自于GNU Classpath与OpenJDK等)并替换掉托管代码中的原生C代码。如果用户在应用中没有使用原生代码,那么使用了IKVM的Java应用就是完全 可移植的,因为IKVM并未使用任何原生代码。

目前,IKVM已完全支持Java 7,包括对新的指令invoke dynamic的支持。然而,Frijters承认还有很多工作要做以提升新指令的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-16489.html

如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网进行投诉反馈,一经查实,立即删除!


相关文章:

  • Nagios搭建及问题详解(一)
  • 如何访问嵌套母版页中的控件
  • 今天博客园肿了吗?希望团队修复一下
  • Exchange使用正常的恢复无法恢复的问题
  • TextView属性android:ellipsize实现跑马灯效果
  • linux --- 启动过程
  • javaScript,Dwr分页模拟
  • 【笔记】《编写高质量代码:改善c#程序的157个建议》-第1章 基本语言要素(SamWang)...
  • 于Linux下s、t、i、a权限
  • 学了N年英语,你学会翻译了吗?——最基本的数据库连接
  • 【C++】对象作为函数参数【原创技术】
  • DEDECMS首页调用单页文档内容并带过滤HTML的方法
  • iphone 开发内存管理 心得
  • 第四届中国云计算大会——123
  • android软键盘挡住输入框问题解决方法
  • 背包之01背包、完全背包、多重背包详解
  • 【C】C99 restrict 关键字
  • PLSQL游标详解
  • ospf 区域验证
  • C#将窗口最小化到系统托盘,并显示图标和快捷菜单
  • H3C的静态路由、Track与NQA联动配置举例
  • js读取json数据(php传值给js)
  • 让人死去活来的cocos2d-x安卓开发环境搭建(windows+eclipse+ndk 不用cygwin)【上图】
  • centos5.8下FastDFS分布式文件系统+redis+ImageMagick
  • supports-screens
  • 设置部分文件不适用ARC机制
  • 光基础知识
  • 我叫MT 方砖叔
  • JavaScript的作用域链
  • 证明华为模拟器Wvrp5.2a的二三层可以通信的trunk实验
  • 50 Most Frequently Used UNIX / Linux Commands (With Examples)
  • 创建CA颁发证书
  • HSRP 和 VRRP 协议
  • 希哲求大神教 技术额
  • Composite_组合模式_PHP语言描述
  • 分享一款国外的优化IE9浏览器的软件感觉很好用兼容win7
  • 程序员的自我修养 - 符号修饰 函数签名 以及一个引申的问题: extern c
  • 写日志文件
  • 安装conntrack-tools
  • apache的rewrite详解
  • poj 1656 Counting Black
  • 工作中windows客户端常见问题
  • 多态和C++多态的实现(汇总)
  • 虚拟机vmware硬盘扩容方法
  • 在 github 上建立 pages 的过程
  • 修改linux文本模式下的分辨率
  • python:可变参数与apply
  • Ulipad中设置自定义模块(module)路径的方法(图)
  • 解决TIME_WAIT造成的服务器无法访问
  • PHP实现手机归属地查询API接口