posts - 274,  comments - 1258,  trackbacks - 0

IKVM 是一个.NET实现的java虚拟机及中间码翻译工具,它的0.34.0.2 Release版貎似有RPWT,用了一个Bruise传给我的hybrid-0.35.2769 才可以开始工作。

 

它能够实现的功能:

  1. 与Java.exe功能类似的java虚拟机ikvm.exe
  2. 通过ikvmc.exe将class文件或jar包转换成dll或exe文件(取决于类里边是否有main方法和参数设置),这时会作一些转换,包括:
    • 类型的映射,比如将java.lang.Object映射到System.Object等
    • 一些语言元素的对应转换,package对应namespace,jar文件对应dll文件
  3. 通过ikvmstub.exe来根据.net程序集生成对应的java存根类(有声明没有实现的类),使得引用到.net库的java代码能够被编译成.class文件。
已解决的问题:
  1. 将java类转换成dll程序集或exe文件,从而被用C#编写的类调用,或者独立运行。
    C#貎似不能引用其它dll里的默认namespace里边的内容,所以java文件必须声明包,以便被转换成命名空间。<br>此外,因为 java中默认访问权限的方法会被转换成internal方法,所以在java中必须将这些方法显式地声明为public

已经发现的问题:
  1. 在java中,没有声明访问权限的方法默认是public的,但转换后的方法访问权限是internal的。
  2. 0.34.0.2 Release版的问题:当被编译的类中有main()方法时,ikvm会自动将其编译成exe文件,但这个exe文件不可执行。不过该版本将类库编译成dll貌似没有问题,而且ikvm.Runtime.dll等可以放进全局程序集缓存(GAC)。
  3. hybrid-0.35.2769版的问题:该版本编译生成exe没有问题,但IKVM.Runtime.dll等自身的dll文件无法放入GAC,比较麻烦。
  4. 在java部分使用了java.io.File类时会引发异常(仅测试了hybrid-0.35.2769版),( ikvmbin-hybrid-0.35.2777.zip 解决了这个问题)
    异常输出


posted on 2007-08-10 16:46 踏雪赤兔 阅读(8241) 评论(7)  编辑 收藏 引用 所属分类: 玩转编程

FeedBack:
# re: IKVM使用笔记
2007-08-10 22:29 | PICASA
认真学习中。。。  回复  更多评论
  
# re: IKVM使用笔记[未登录]
2007-08-11 09:55 | s
昨天晚上是什么文档忘存丢失了哦?

有机会BG你啦,自助餐怎样?  回复  更多评论
  
# re: IKVM使用笔记[未登录]
2007-08-11 09:56 | s
不管怎样,保持好心情哦~~广州忽然变冷,注意防寒保暖~~  回复  更多评论
  
# re: IKVM使用笔记
2007-08-14 18:01 | 小bug
1.在java中,没有声明访问权限的方法默认是public的,但转换后的方法访问权限是internal的。

类里面没有声明访问权限的方法难道不是private?接口里面没有声明的才是public

你介绍的这个东西可以把java当.net用?很好,很强大~  回复  更多评论
  
# re: IKVM使用笔记
2007-08-14 18:48 | 小bug
[修改] 类里面没声明权限的方法应该是包访问权限...就是此包内可以访问,外面不行。不知道.net里面对应的权限是什么  回复  更多评论
  
# re: IKVM使用笔记
2007-08-14 21:21 | 踏雪赤兔
哦~~那就应该是对应internal了。不过有一点不同,在java里,没有声明包的两个类是相互可见的,而在.net里,在默认命名空间下的类是不可见的,因此不可调用对方的internal方法。  回复  更多评论
  
# re: IKVM使用笔记
2007-08-14 23:12 | 小bug
哦哦~  回复  更多评论
  
只有注册用户登录后才能发表评论。

百度空间| 见闻日记| 编程感悟
我的twitter


LOGO

自我介绍:百度厂基础平台车间的一名挨踢民工。擅长C++、算法、语言设计、分布式计算,也用过Java,Python, PHP,JS/AS等语言开发。请关注我的twitter (免翻墙版) 发QQ消息


添加到收藏夹 Locations of visitors to this page

常用链接

随笔分类(300)

随笔档案(274)

文章分类(38)

相册

收藏夹(54)

与博主互动

博客手拉手

搜索

  •  

积分与排名

  • 积分 - 399952
  • 排名 - 10

最新评论

阅读排行榜

评论排行榜