E81086713E446D36F62B2AA2A3502B5EB155

          Java雜家

          雜七雜八。。。一家之言

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            40 Posts :: 1 Stories :: 174 Comments :: 0 Trackbacks
          利用春節(jié)的閑暇,開發(fā)了一款Java轉EXE文件的工具。
          之前曾經(jīng)用過一款開源的工具Jsmooth,發(fā)現(xiàn)生成的EXE文件通過改名還是可以看見class文件,這一點很不爽,所以自己做了一款,改進這個不足。特性列表:
          1)生成EXE文件,安全發(fā)布你的Java程序,防止反編譯
          2)不用設置Classpath了,把依賴的jar包,安全的包含在生成的文件里。(All In One,:-)
          3)支持程序的圖標(Icon)文件設置,使用.ico文件。
          4) 可選帶控制臺或不帶控制臺,并設置控制臺的標題。

          TODO Features:

          1)增加Native Splash Screen
          2)提供本地接口供Java程序使用,比如注冊表訪問,可以在Java代碼里
          使用PlatformAPI.readRegistryKey()本地方法,而PlatformAPI在生成的EXE里內置,并且不再需要另外的DLL文件.(我叫它:Mixing Java Class and JNI DLL files in EXE).
          3)國際化,現(xiàn)在好多參數(shù)都只考慮ASCII.

          下載:
          Java2exe_0.0.1.zip
          posted on 2007-02-25 16:11 DoubleH 閱讀(4067) 評論(23)  編輯  收藏

          Feedback

          # re: Java轉EXE文件工具 2007-02-25 18:31 azure
          做的不錯,我想問一下,如果用戶機器上沒有jre這個exe文件可以運行嗎?  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-25 18:48 喜來樂哈哈
          確實不錯,有空的時候能介紹一下原理嗎?

          如果能共享代碼當然更好  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-25 19:49 Javacap
          @azure
          沒有JRE是不行的,可以考慮再嵌入一個JRE

          @喜來樂哈哈
          基本原理很簡單,就是一個查找合適JRE然后啟動合適的Java類。但是要做好就要看自己的發(fā)揮了。  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-25 20:35 喜來樂哈哈
          是用JNI的Invocation Interface吧?  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-26 11:33 azure
          不知道是什么原理來著,是用delphi寫的嗎?是否運行后將exe文件解壓縮變成jar文件后再運行java命令?  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-26 12:33 Javacap
          @azure
          Java寫的,沒有任何解壓縮的過程。  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-26 16:07 azure
          我看到網(wǎng)上有篇資料說可以:
          ----------------------------
          copy /b ..\JBuilder.exe+hello.jar foo.exe
          在foo.config(JBuilder.config)文件里面把前面加入的類路 徑去掉,并加入下面的路徑:
          addpath E:/jbuilder5/bin/temp/foo.exe
          然后執(zhí)行,foo.exe
          看到一個含jar包的exe文件被執(zhí)行了!
          ----------------------------
          不知道是不是這個技巧來著,:)  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-26 16:39 azure
          猜想技巧應該是這樣的,:):
          1、用delphi或vc寫一個起動器boot.exe,boot.exe將會和需要的jar包使用指定的icon打到一個exe文件中,使用命令:
          copy /b ..\boot.exe+hello.jar Foo.exe

          2、在生成的foo.exe文件里面使用第1步生成的命令:
          “java -cp Foo.exe Mainclass”
          來運行該exe文件。

          疑問是第一步生成的命令(如:Mainclass)是怎么傳遞給第2步的,???
            回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-26 16:55 azure
          想了一下,可能是將Mainclass和classpath信息寫入到一個文件中保存起來了,運行的時候再從該文件中讀取該信息。
          第1步需要的所有jar都和包含了第2部需要運行的Mainclass和classpath信息的文件一起打到了一個jar包中。  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-26 17:43 Javacap
          azure同學,你猜的都不對哦,你說的方法實在是下下策!
            回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-27 00:39 azure
          考慮了一下之后,覺得如下方法要簡單一些:
          1、用delphi或vc寫一個起動器boot.exe,boot.exe為一個殼,它做的事情是執(zhí)行命令:jar Foo.exe(假設Foo.exe該exe文件的自己名稱)。
          2、java2exe.exe工具為boot.exe和需要的jar包(假設名稱為java2exe.jar)合成的一個exe文件,合成過程為:
          copy /b ..\boot.exe+java2exe.jar java2exe.exe。
          這個過程可以寫一個程序來生成也可以直接在控制臺運行。
          3、java2exe.jar包為一個可以直接使用jar命令運行的包,其功能為:將classpath里面包含的所有jar包合成一個可以直接使用jar命令運行的jar包(假設為appjars.jar),然后調用命令:
          copy /b ..\java2exe.exe+appjars.jar app.exe(即需要生成的exe文件名稱) 。
          4、當生成的app.exe運行時,會調用命令:jar app.exe,即jar app.jar。

          大致可能是這樣的,:)  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-02-27 10:43 Javacap
          呵呵,azure同學,這個程序雖然看上去似乎是純 Java的其實不是,
          C代碼占70%,照你方法應該可以,但是有很多缺點。如何編譯都是 C在做的。這個程序妙就妙在C,Java,JNI整合成一個有機體EXE程序。其實在Swing中顯示Icon文件也是本地代碼在做的
            回復  更多評論
            

          # re: Java轉EXE文件工具[未登錄] 2007-02-28 13:32 quietywind
          請問一下運行這個需要什么環(huán)境啊?
          為什么我點擊add后什么反應都沒有呢?  回復  更多評論
            

          # re: Java轉EXE文件工具[未登錄] 2007-03-02 21:34 Javacap
          需要安裝JRE1.3以上  回復  更多評論
            

          # re: Java轉EXE文件工具[未登錄] 2007-03-06 14:43 quietywind
          安裝了啊,我做Java開發(fā)使用的JRE是1.5的  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-05-27 13:19 TearCry
          請問,我為什么用NetBeans5.5 生成的jar文件,用這個工具,主類我也選擇正確了,可是編譯時為什么生成失敗啊?
          出現(xiàn)java.lang.Exception
          因為我的這個jar文件要調netbeans的swing布局擴展庫,是不是這個原因?  回復  更多評論
            

          # re: Java轉EXE文件工具 2007-07-28 23:22 路過
          都不好使啊!  回復  更多評論
            

          # re: Java轉EXE文件工具 2008-05-08 20:01 liyuejin
          這個東西到底該怎么用呀?  回復  更多評論
            

          # re: Java轉EXE文件工具 2008-08-01 12:38 你好
          請問,我的Main類啟動需要args 參數(shù),我如何設定呢?  回復  更多評論
            

          # re: Java轉EXE文件工具 2008-08-02 23:21
          不知道怎么用啊  回復  更多評論
            

          # re: Java轉EXE文件工具 2009-02-28 16:27 333
          解放中國!!!  回復  更多評論
            

          # re: Java轉EXE文件工具 2009-03-05 18:12 氣憤
          垃圾,根本沒法用……  回復  更多評論
            

          # re: Java轉EXE文件工具 2009-03-31 16:51 爸爸
          騙子,垃圾,改開源項目都不會改,hello world都顯示不了  回復  更多評論
            


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 明星| 缙云县| 文昌市| 德钦县| 普兰县| 玉山县| 长武县| 手机| 汤原县| 五河县| 井冈山市| 蒙自县| 乃东县| 凯里市| 怀仁县| 买车| 张家川| 丹凤县| 奉新县| 星子县| 海原县| 吉安县| 甘肃省| 松江区| 酒泉市| 海门市| 仁寿县| 凉城县| 公安县| 临泽县| 栾川县| 山阳县| 壶关县| 日照市| 宁陕县| 绥阳县| 荥经县| 普定县| 镇沅| 乐都县| 托里县|