日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java转net_将java库转换为.net库

發布時間:2023/12/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java转net_将java库转换为.net库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

動機: 充分利用java陣營眾多的類庫 工具: IKVM――把java bytecode 轉換成IL程序,并提供大部分J2SE 1.4類的.net實現(IKVM.GNU.Classpath.dll) winrar――提取jar,打包jar Java IDE(可選)――閱讀源代碼,瀏覽類之間的關系,我用的是eclipse 反編譯工具(可選)――沒源代碼時用,主要也是瀏覽類與類之間的關系,java反編譯我用的是DJ Java Decompiler,.net用Reflector。 原理: java也好,.net也好,其執行無非就是運行時 + 庫,把java匯編指令一條一條轉換為IL匯編指令,就可以實現java程序到.net程序的轉換――你可以通過最純正的.net使用方式來使用這些類庫/程序。ikvm實現的就是這樣一個功能。 如果一個java程序調用一大堆java類庫,那么必須把這些程序和類庫全部轉換成.net的IL格式,這個程序才能執行。 IKVM安裝: 從www.ikvm.net上下載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的主要的lib geoapi.jar――OpenGIS一幫人定義的標準geoapi jai_codec.jar, jai_core.jar,――Java 2D API JTS-1.4.jar,――Java 拓撲套件,主要用于拓撲分析,可能依賴 vecmath-1.3.jar――vector數學庫 xalan-2.5.1.jar――xml 轉換lib opengis-legacy-0.1.jar,――忘了干什么的,反正和gis有關 units-0.01.jar――不知道是什么 batik*.jar――SVG lib mailapi-1.3.jar 步驟2:轉換類庫 先轉換那些沒依賴的庫,比如vecmath-1.3.jar,...... 運行: ikvmc -target:library vecmath-1.3.jar 結果: Note: output file is "vecmath-1.3.dll" Note: automatically adding reference to "f:\ikvm-0.20.0.0\ikvm\bin\ikvm.gnu.classpath.dll" 成功轉換成vecmath-1.3.dll。 如果碰上了依賴的庫沒轉換,比如運行: ikvmc -target:library jai_codec.jar 結果提示有些類找不到: Note: output file is "jai_codec.dll" Note: automatically adding reference to "f:\ikvm-0.20.0.0\ikvm\bin\ikvm.gnu.classpath.dll" Warning: class "com.sun.image.codec.jpeg.JPEGCodec" not found Warning: class "com.sun.image.codec.jpeg.JPEGEncodeParam" not found Warning: class "com.sun.image.codec.jpeg.JPEGImageEncoder" not found Warning: class "com.sun.image.codec.jpeg.JPEGDecodeParam" not found Warning: class "com.sun.image.codec.jpeg.JPEGImageDecoder" not found Warning: class "com.sun.image.codec.jpeg.ImageFormatException" not found Warning: class "com.sun.image.codec.jpeg.JPEGQTable" not found Warning: class "sun.security.action.GetPropertyAction" not found 因此對于有依賴關系的庫,需要從最下面那個,大家都依靠它的那個庫轉換起。在這里就是rt.jar。 from: http://hi.baidu.com/ecgql/blog/item/f2bde21fefa6000c314e1563.html

如鵬網.Net培訓班正在報名,有網絡的地方就可以參加如鵬網的學習,學完就能高薪就業,點擊此處了解

三年前只要懂“三層架構”就可以說“精通分層架構”;現在則需要懂IOC(AutoFac等)、CodeFirst、lambda、DTO等才值錢;

三年前只要會SQLServer就可以說自己“精通數據庫開發”;現在則需還需要掌握MySQL等開源數據庫才能說是“.Net開源”時代的程序員;

三年前只要會進行用戶上傳內容的安全性處理即可;現在則需要熟悉云存儲、CDN等才能在云計算時代游刃有余;

三年前只要掌握Lucene.Net就會說自己“熟悉站內搜索引擎開發”;現在大家都用ElasticSearch了,你還用Lucene.Net就太老土了;

三年前發郵件還是用SmtpClient;現在做大型網站發郵件必須用云郵件引擎;

三年前緩存就是Context.Cache;現在則是Redis、Memcached的天下;

如鵬網再次引領.Net社區技術潮流!點擊此處了解如鵬網.Net最新課程

總結

以上是生活随笔為你收集整理的java转net_将java库转换为.net库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。