E81086713E446D36F62B2AA2A3502B5EB155

          Java雜家

          雜七雜八。。。一家之言

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

          TODO Features:

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

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

          Feedback

          # re: Java轉(zhuǎn)EXE文件工具 2007-02-25 18:31 azure
          做的不錯(cuò),我想問(wèn)一下,如果用戶(hù)機(jī)器上沒(méi)有jre這個(gè)exe文件可以運(yùn)行嗎?  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2007-02-25 18:48 喜來(lái)樂(lè)哈哈
          確實(shí)不錯(cuò),有空的時(shí)候能介紹一下原理嗎?

          如果能共享代碼當(dāng)然更好  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2007-02-25 19:49 Javacap
          @azure
          沒(méi)有JRE是不行的,可以考慮再嵌入一個(gè)JRE

          @喜來(lái)樂(lè)哈哈
          基本原理很簡(jiǎn)單,就是一個(gè)查找合適JRE然后啟動(dòng)合適的Java類(lèi)。但是要做好就要看自己的發(fā)揮了。  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2007-02-25 20:35 喜來(lái)樂(lè)哈哈
          是用JNI的Invocation Interface吧?  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2007-02-26 11:33 azure
          不知道是什么原理來(lái)著,是用delphi寫(xiě)的嗎?是否運(yùn)行后將exe文件解壓縮變成jar文件后再運(yùn)行java命令?  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2007-02-26 12:33 Javacap
          @azure
          Java寫(xiě)的,沒(méi)有任何解壓縮的過(guò)程。  回復(fù)  更多評(píng)論
            

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

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

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

          疑問(wèn)是第一步生成的命令(如:Mainclass)是怎么傳遞給第2步的,???
            回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2007-02-26 16:55 azure
          想了一下,可能是將Mainclass和classpath信息寫(xiě)入到一個(gè)文件中保存起來(lái)了,運(yùn)行的時(shí)候再?gòu)脑撐募凶x取該信息。
          第1步需要的所有jar都和包含了第2部需要運(yùn)行的Mainclass和classpath信息的文件一起打到了一個(gè)jar包中。  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2007-02-26 17:43 Javacap
          azure同學(xué),你猜的都不對(duì)哦,你說(shuō)的方法實(shí)在是下下策!
            回復(fù)  更多評(píng)論
            

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

          大致可能是這樣的,:)  回復(fù)  更多評(píng)論
            

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

          # re: Java轉(zhuǎn)EXE文件工具[未登錄](méi) 2007-02-28 13:32 quietywind
          請(qǐng)問(wèn)一下運(yùn)行這個(gè)需要什么環(huán)境啊?
          為什么我點(diǎn)擊add后什么反應(yīng)都沒(méi)有呢?  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具[未登錄](méi) 2007-03-02 21:34 Javacap
          需要安裝JRE1.3以上  回復(fù)  更多評(píng)論
            

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

          # re: Java轉(zhuǎn)EXE文件工具 2007-05-27 13:19 TearCry
          請(qǐng)問(wèn),我為什么用NetBeans5.5 生成的jar文件,用這個(gè)工具,主類(lèi)我也選擇正確了,可是編譯時(shí)為什么生成失敗啊?
          出現(xiàn)java.lang.Exception
          因?yàn)槲业倪@個(gè)jar文件要調(diào)netbeans的swing布局?jǐn)U展庫(kù),是不是這個(gè)原因?  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2007-07-28 23:22 路過(guò)
          都不好使啊!  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2008-05-08 20:01 liyuejin
          這個(gè)東西到底該怎么用呀?  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2008-08-01 12:38 你好
          請(qǐng)問(wèn),我的Main類(lèi)啟動(dòng)需要args 參數(shù),我如何設(shè)定呢?  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2008-08-02 23:21
          不知道怎么用啊  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2009-02-28 16:27 333
          解放中國(guó)!!!  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2009-03-05 18:12 氣憤
          垃圾,根本沒(méi)法用……  回復(fù)  更多評(píng)論
            

          # re: Java轉(zhuǎn)EXE文件工具 2009-03-31 16:51 爸爸
          騙子,垃圾,改開(kāi)源項(xiàng)目都不會(huì)改,hello world都顯示不了  回復(fù)  更多評(píng)論
            


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宜昌市| 双辽市| 赤水市| 恭城| 新昌县| 太康县| 桃源县| 辽阳县| 岳池县| 大厂| 外汇| 兴宁市| 云龙县| 宝兴县| 怀集县| 武宁县| 新昌县| 饶河县| 灵璧县| 沁水县| 通州区| 阳朔县| 潜山县| 中宁县| 云南省| 安达市| 淳化县| 苍梧县| 平定县| 绵竹市| 左云县| 蓝山县| 黔南| 盐城市| 金沙县| 乌审旗| 定远县| 衡东县| 宝兴县| 永靖县| 白银市|