Feeling

              三人行,必有我師焉

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

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

          Excelsior JET無非就是用自己的Runtime來代替JRE,只是比JRE更加靈活,根據Java程序具體的依賴來生成對應的Runtime。其實這個Runtime也挺大的,通常10M左右,不過比起JRE,那要小很多了。SWT Extension上的那個例子只有6M,是因為我用ASPack把所有的DLL文件全部壓縮過了,體積小了一半。

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

          JAVA代碼編譯成本機程序的弊端也是有的,那意味著你將無法在線升級,GCJ也許可以,但是Excelsior JET是絕對不行的,這是因為它最后一步要對所有DLL進行鏈接,如果更換了DLL文件,它會檢測出來并報錯。

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

          posted on 2008-05-18 15:38 三人行,必有我師焉 閱讀(6836) 評論(7)  編輯  收藏

          評論

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

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

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

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

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

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

          這個也是需要JRE的,是一種特殊的JRE而已.  回復  更多評論
            

          # re: Excelsior JET:把Java程序編譯成本機可執行程序的工具 2008-05-24 21:21 三人行,必有我師焉
          @BeanSoft
          只是它自己的runtime而已,基本上和JRE無關了。  回復  更多評論
            


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


          網站導航:
           
          GitHub |  開源中國社區 |  maven倉庫 |  文件格式轉換 
          主站蜘蛛池模板: 泸州市| 中宁县| 梓潼县| 巨鹿县| 郸城县| 宝鸡市| 巴青县| 伊金霍洛旗| 上蔡县| 久治县| 安岳县| 科技| 惠来县| 双鸭山市| 府谷县| 尼木县| 益阳市| 伊宁县| 乡宁县| 濮阳县| 尖扎县| 莎车县| 二连浩特市| 富蕴县| 呼图壁县| 万山特区| 随州市| 沙坪坝区| 益阳市| 丽水市| 桃园县| 江川县| 萍乡市| 黄浦区| 大足县| 新宾| 滨海县| 都昌县| 双桥区| 新巴尔虎右旗| 平顶山市|