2024年3月23日发(作者:)
充分利用java阵营众多的类库
工具:
IKVM――把javabytecode转换成IL程序,并提供大部分J2SE1.4类的.net实现
()
winrar――提取jar,打包jar
JavaIDE(可选)――阅读源代码,浏览类之间的关系,我用的是eclipse
反编译工具(可选)――没源代码时用,主要也是浏览类与类之间的关系,java反编译我
用的是DJJavaDecompiler,.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,也不存在于
之中,则会给出警告信息,该类也不会转换。这时,需要引用缺少的类所在的dll,格式如下:
ikvmc-target:library-reference:-reference:
-reference:
jar的提取:
jar可以用winrar打开,把你想要的目录或类解压缩。
把javaclass文件打包为jar:
把目录压缩成zip格式,把后缀改成jar,OK。
例子:转换Geotools的main模块
下面以Geotools的main模块为例,说明怎样将jar文件转换为IL文件。
geotools是有10年历史的GIS中间件。其main模块有1000多个类,源代码文件大小合计
9.74M。jar文件名为,2.34M.
步骤1:分析main模块依赖的类库,分析类库间的依赖关系
geotools-main依赖的类库有:
――java的主要的lib
――OpenGIS一帮人定义的标准geoapi
jai_,jai_,――Java2DAPI
,――Java拓扑套件,主要用于拓扑分析,可能依赖
――vector数学库
发布评论