Feeling

              三人行,必有我?guī)熝?/p>

             ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            185 隨筆 :: 0 文章 :: 392 評論 :: 0 Trackbacks
            最近很多人問我SWT Extension 項(xiàng)目上的那個(gè)不需要的JREExample是如何做出來的。我以前也會執(zhí)著于這個(gè)問題,畢竟如果不依賴于JRE的話,就不需要為用戶準(zhǔn)備一個(gè)容量極大的安裝包,但是這種做法看似有利,實(shí)則有利有弊。

          就我所知,目前把Java程序編譯成本機(jī)可執(zhí)行程序的方法有兩種,一種是GCJ,免費(fèi)的,一種是Excelsior JET,商業(yè)的。我已經(jīng)很久沒有碰過GCJ了,因?yàn)楫?dāng)初用起來實(shí)在是非常麻煩,現(xiàn)在的版本如何,我不太清楚。我自己使用的是Excelsior JET,版本為3.7。有一點(diǎn)要注意的的是,Excelsior JET的后續(xù)版本好像已經(jīng)不支持這個(gè)功能了,3.7是我所知的最后一個(gè)版本,能支持當(dāng)前所有的Win32平臺和早期的Linux(當(dāng)前比較流行的Ubuntu不支持,因?yàn)閮?nèi)核版本過高,不過企業(yè)版Redhat沒有問題)。不過我是很久以前從0day當(dāng)下來的,由于0day倉儲只保留一年,故現(xiàn)在已經(jīng)找不到了,我自己的機(jī)器上也沒有安裝包了(有一次大意之下,把整個(gè)Download目錄全給刪掉了,事后悔之晚矣)。

          Excelsior JET無非就是用自己的Runtime來代替JRE,只是比JRE更加靈活,根據(jù)Java程序具體的依賴來生成對應(yīng)的Runtime。其實(shí)這個(gè)Runtime也挺大的,通常10M左右,不過比起JRE,那要小很多了。SWT Extension上的那個(gè)例子只有6M,是因?yàn)槲矣?/span>ASPack把所有的DLL文件全部壓縮過了,體積小了一半。

          就我的感覺,Excelsior JETGCJ更加靈活,也更好用,畢竟是商業(yè)版的東西,它的網(wǎng)站上曾經(jīng)有例子將Eclipse 3.0編譯成本機(jī)程序,不過我當(dāng)初照著例子試了一遍,沒有成功。Excelsior JET的編譯過程極為耗時(shí),我上大學(xué)的時(shí)候,當(dāng)時(shí)機(jī)器只有128M內(nèi)存,編譯了一天JRE也沒有完成,后來找同學(xué)借了根256的內(nèi)存,這才得以完成。

          JAVA代碼編譯成本機(jī)程序的弊端也是有的,那意味著你將無法在線升級,GCJ也許可以,但是Excelsior JET是絕對不行的,這是因?yàn)樗詈笠徊揭獙λ?/span>DLL進(jìn)行鏈接,如果更換了DLL文件,它會檢測出來并報(bào)錯(cuò)。

          各位看官如果哪位有興趣,可以自行在網(wǎng)上查找Excelsior JET3.7或其他版本。由于安裝包我自己也沒有,故無法提供下載,見諒。


          評論

          # re: Excelsior JET:把Java程序編譯成本機(jī)可執(zhí)行程序的工具 2008-05-18 20:21 BeanSoft
          是呀 編譯特別慢。。。很早之前弄過,后來覺得老用破解軟件,于心不忍,呵呵,而且新版的安裝包也特別大。  回復(fù)  更多評論
            

          # re: Excelsior JET:把Java程序編譯成本機(jī)可執(zhí)行程序的工具 2008-05-19 19:27 BeanSoft
          弱弱的問下你還有 key 嘛 3.7 的。。。。  回復(fù)  更多評論
            

          # re: Excelsior JET:把Java程序編譯成本機(jī)可執(zhí)行程序的工具 2008-05-19 20:16 三人行,必有我?guī)熝?/a>
          0day的那個(gè)版本是不需要key的,安裝包就已經(jīng)破解好了。盡管安裝包我已經(jīng)弄丟了,不過Win32 綠色的也可以用,只不過要配置一下環(huán)境變量。Linux的那個(gè)版本我就更找不到了,主要是現(xiàn)在只支持部分Linux,覺得沒多大意思,3.7的patch好像解決了這個(gè)問題,但是需要正版用戶才行。我等破解用戶,就只能垂涎了。你要是還想玩玩的話,我可以打包一個(gè)綠色版給你。另外3.7只支持到JDK1.4,1.5的話都是需要官方patch的。  回復(fù)  更多評論
            

          # re: Excelsior JET:把Java程序編譯成本機(jī)可執(zhí)行程序的工具 2008-05-20 19:30 BeanSoft
          好啊 打包給我個(gè)綠色版好了 可惜這幾天白天不能上網(wǎng) 我給你留言個(gè)帳號 幫忙上傳下 多謝了  回復(fù)  更多評論
            

          # re: Excelsior JET:把Java程序編譯成本機(jī)可執(zhí)行程序的工具 2008-05-21 16:35 Always BaNg.
          我覺得Java程序不需要JRE是背離Java精神的,只能作為特殊情況對待。  回復(fù)  更多評論
            

          # re: Excelsior JET:把Java程序編譯成本機(jī)可執(zhí)行程序的工具 2008-05-23 00:11 BeanSoft
          多謝了!已經(jīng)收到,再次感謝!

          這個(gè)也是需要JRE的,是一種特殊的JRE而已.  回復(fù)  更多評論
            

          # re: Excelsior JET:把Java程序編譯成本機(jī)可執(zhí)行程序的工具 2008-05-24 21:21 三人行,必有我?guī)熝?/a>
          @BeanSoft
          只是它自己的runtime而已,基本上和JRE無關(guān)了。  
          回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          GitHub |  開源中國社區(qū) |  maven倉庫 |  文件格式轉(zhuǎn)換 
          主站蜘蛛池模板: 镇原县| 望谟县| 房产| 马龙县| 敦化市| 通渭县| 永靖县| 青阳县| 乐都县| 治多县| 革吉县| 昌平区| 洞口县| 林周县| 德格县| 习水县| 新津县| 随州市| 定西市| 泰和县| 铅山县| 平和县| 乳山市| 合山市| 弋阳县| 丹巴县| 黔江区| 连城县| 报价| 长春市| 赤水市| 双江| 卢龙县| 安仁县| 保定市| 高阳县| 苏尼特右旗| 武宁县| 丁青县| 策勒县| 和硕县|