将java库转换为.net库.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
将java库转换为.net库

记录,以备后用动机:??? 充分利用java阵营众多的类库?工具:IKVM――把java bytecode?转换成IL程序,并提供大部分J2SE 1.4类的.net实现(IKVM.GNU.Classpath.dll)winrar――提取jar,打包jarJava IDE(可选)――阅读源代码,浏览类之间的关系,我用的是eclipse反编译工具(可选)――没源代码时用,主要也是浏览类与类之间的关系,java反编译我用的是DJ Java Decompiler,.net用Reflector。?原理:java也好,.net也好,其执行无非就是运行时?+?库,把java汇编指令一条一条转换为IL汇编指令,就可以实现java程序到.net程序的转换――你可以通过最纯正的.net使用方式来使用这些类库/程序。ikvm实现的就是这样一个功能。如果一个java程序调用一大堆java类库,那么必须把这些程序和类库全部转换成.net的IL格式,这个程序才能执行。?IKVM安装:从上下载ikvm,解压缩后就能开始用。?将jar转换为dll:运行:ikvmc -target:library?××××.jar会将jar文件自动转换为?××××.dll但是,如果jar中引用的类不存在于××××.jar,也不存在于IKVM.GNU.Classpath.dll之中,则会给出警告信息,该类也不会转换。这时,需要引用缺少的类所在的dll,格式如下:ikvmc -target:library -reference:lib1.dll -reference:lib2.dll -reference:lib3.dll jar1.jar?jar的提取:jar可以用winrar打开,把你想要的目录或类解压缩。?把java class文件打包为jar:把目录压缩成zip格式,把后缀改成jar,OK。?例子:转换Geotools的main模块下面以Geotools的main模块为例,说明怎样将jar文件转换为IL文件。geotools是有10年历史的GIS中间件。其main模块有1000多个类,源代码文件大小合计9.74M。jar文件名为gt2-main.jar,2.34M.?步骤1:分析main模块依赖的类库,分析类库间的依赖关系?geotools-main依赖的类库有:?rt.jar――java的主要的libgeoapi.jar――OpenGIS一帮人定义的标准geoapijai_codec.jar, jai_core.jar,――Java 2D APIJTS-1.4.jar,――Java?拓扑套件,主要用于拓扑分析,可能依赖vecmath-1.3.jar――vector数学库xalan-2.5.1.jar――xml?转换libopengis-legacy-0.1.jar,――忘了干什么的,反正和gis有关units-0.01.jar――不知道是什么batik*.jar――SVG libmailapi-1.3.jar?步骤2:转换类库?先转换那些没依赖的库,比如vecmath-1.3.jar,......?运行:ikvmc -target:library vecmath-1.3.jar?结果:?Note: output file is vecmath-1.3.dllNote: automatically adding reference to f:\ikvm-\ikvm\bin\ikvm.gnu.classpath.dll?成功转换成vecmath-1.3.dll。?如果碰上了依赖的库没转换,比如运行:ikvmc -target:library jai_codec.jar?结果提示有些类找不到:?Note: output file is jai_codec.dllNote: automatically adding reference to f:\ikvm-\ikvm\bin\ikvm.gnu.classpath.dllWarning: class com.sun.image.codec.jpeg.JPEGCodec not foundWarning: class com.sun.image.codec.jpeg.JPEGEncodeParam not foundWarning: class com.sun.image.codec.jpeg.JPEGImageEncoder not foundWarning: class com.sun.image.codec.jpeg.JPEGDecodeParam not foundWarning: class com.sun.image.codec.jpeg.JPEGImageDecoder not foundWarning: class

文档评论(0)

hf916589 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档