<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JavaPro

    On the Java Road
    隨筆 - 26, 文章 - 0, 評(píng)論 - 63, 引用 - 0
    數(shù)據(jù)加載中……

    一鍵安裝雙擊運(yùn)行——Java安裝程序制作

    標(biāo) 題: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作
    作 者: Jason Du
    時(shí) 間: 2009-3-23
    原 文: http://www.tkk7.com/javapro/archive/2009/03/24/JavaAppSetup.html 

      對(duì)于Java桌面應(yīng)用來(lái)說(shuō),比較煩瑣的就是安裝部署問(wèn)題,如:客戶端是否安裝有jre、jre版本、jre在哪里下載、如何用jre啟動(dòng)Java應(yīng)用等等。不要說(shuō)剛接觸電腦的人,就算是比較熟悉電腦,如果沒(méi)有接觸過(guò)Java,面對(duì)一個(gè)Java應(yīng)用,如何在Windows下啟動(dòng)它,估計(jì)都會(huì)折騰半天。所以這個(gè)是導(dǎo)致Java桌面應(yīng)用被一些人所討厭的最大原因,Java的優(yōu)勢(shì)是“一次編寫(xiě),隨處運(yùn)行”,跨平臺(tái)特性確實(shí)很好,但并不是每個(gè)人都需要跨平臺(tái),而且有時(shí)候JVM平臺(tái)或版本問(wèn)題也會(huì)造成“一次編寫(xiě),到處測(cè)試”的尷尬。對(duì)于固定平臺(tái)下的Java應(yīng)用,最好的方式莫過(guò)于帶著JRE,讓用戶輕松點(diǎn)擊就能運(yùn)行。下面我們來(lái)解決這樣的問(wèn)題。

      針對(duì)windows平臺(tái),主要方法是:先將JRE進(jìn)行精簡(jiǎn),再使用工具exe4j 來(lái)解決雙擊運(yùn)行使用的問(wèn)題,最后用Inno Setup打包成安裝程序, 這樣一來(lái),我們的Java應(yīng)用就和普通的windows應(yīng)用程序一樣了。

    本文相關(guān)下載

    本教程PDF格式文檔
    http://www.uushare.com/user/javapro/file/1418624
    http://www.rayfile.com/files/7840998c-1824-11de-942b-0014221b798a/

    本教程示例程序
    http://www.uushare.com/user/javapro/file/1418316 
    http://www.rayfile.com/files/3ee1f95c-1826-11de-bcfb-0019d11a795f/

    exe4j 4.2 注冊(cè)版
    http://www.uushare.com/user/javapro/file/1418327
    http://www.rayfile.com/files/c56bebba-1826-11de-9b55-0019d11a795f/

    Inno Setup 漢化增強(qiáng)版 + ISTool漢化 + 反編譯套裝 + ISFD界面設(shè)計(jì)漢化
    http://www.uushare.com/user/javapro/file/1418305
    http://www.rayfile.com/files/95c91dd9-1826-11de-89b1-0019d11a795f/


    一、精簡(jiǎn)JRE


      JRE6默認(rèn)安裝大小大約90M,而一般程序只有幾M甚至幾百K,帶JRE運(yùn)行,感覺(jué)非常不合理,分發(fā)與網(wǎng)絡(luò)傳輸過(guò)程也會(huì)大受影響。關(guān)于JRE的精簡(jiǎn)參照下面幾篇相關(guān)文章:

    Java程序發(fā)布之jre篇
    http://www.tkk7.com/gdws/archive/2006/12/25/89898.html

    如何制作最小的RCP程序壓縮包(包含JRE)
    http://www.eclipseworld.org/bbs/read-cec-tid-5777.html

    讓Java程序帶上精簡(jiǎn)的jre(附工具)
    http://glemir.xplore.cn/archives/200

    JRE極限精簡(jiǎn)探求手冊(cè)[1]——精簡(jiǎn)一個(gè)Swing的即時(shí)戰(zhàn)略游戲
    http://cping1982.blog.51cto.com/601635/129630

    Java應(yīng)用——精簡(jiǎn)JRE體積的小工具
    http://blog.csdn.net/cping1982/archive/2008/09/02/2865198.aspx

    JVM rt.jar 精簡(jiǎn)工具圖形外殼 0.1
    http://www.tkk7.com/beansoft/archive/2008/12/19/247321.html

    可以運(yùn)行 RCP/Swing 的迷你JRE 6(3.75MB)
    http://www.tkk7.com/beansoft/archive/2008/01/18/176353.html

    可以運(yùn)行SWT的精簡(jiǎn)版JRE 1.4.2_04, 壓縮后僅1.3MB
    http://www.tkk7.com/beansoft/archive/2007/03/07/102381.html

      總得來(lái)說(shuō)JRE精簡(jiǎn)是一個(gè)比較復(fù)雜的工作,如果不清楚某部分的功能不要輕易進(jìn)行刪減,否則可能產(chǎn)生一些未知的錯(cuò)誤。pack200壓縮工具在對(duì)某些重新打包過(guò)的rt.jar文件壓縮時(shí)會(huì)產(chǎn)生錯(cuò)誤,如果使用的話一定要注意控制臺(tái)的輸出信息。

    二、使用exe4j生成exe可執(zhí)行文件

      下面是我的一個(gè)完整Java示例程序 —— TestProcessBar。可以看到示例程序已經(jīng)附帶了jre , 下面先使用exe4j給它制作一個(gè)exe可執(zhí)行文件(即圖中的TestProcessBar.exe),并指定我們自帶的jre 。


     
    以下是exe4j的啟動(dòng)界面,點(diǎn)擊Next開(kāi)始創(chuàng)建配置文件。
     


    接著選擇要?jiǎng)?chuàng)建的exe文件類型,在這里我們選擇第一個(gè),這樣其實(shí)是為程序創(chuàng)建一個(gè)可以雙擊運(yùn)行的啟動(dòng)器,可以保證程序仍具有跨平臺(tái)的特性。如果選擇第二個(gè),可以把程序完全編譯成exe文件,可以更好的保護(hù)你的程序不被反編譯。



    接下來(lái)設(shè)置程序的短文件名,源文件夾路徑(可以使用exe4j工程文件的相對(duì)路徑。這里我的exe4j文件保存在launcher目錄下,所以使用的源路徑為[..],即上一級(jí)目錄),以及要生成的exe文件的存放目錄,exe存放目錄相對(duì)路徑為源文件夾,這里我把它指定為當(dāng)前源文件夾。



    接下來(lái),可以給我們即將生成的exe文件起一個(gè)名字,如我的“TestProcessBar.exe”,還可以給它指定一個(gè)ico類型的圖標(biāo),其它按默認(rèn)就可以了,如圖:


     
    這里我們還可以為要生成的exe文件附加一些信息



    接下來(lái)的這一步,我們需要把程序中所用到的類路徑添加上去。然后指定程序的啟動(dòng)類,其它如果沒(méi)有必要的話,則按默認(rèn)即可,點(diǎn)擊+號(hào)添加類路徑:


     
    基本上我們所需要用到的jar文件都要添加上去,可以逐個(gè)添加上去,也可以添加整個(gè)文件夾或者使用系統(tǒng)環(huán)境變量,為了使程序能夠隨處運(yùn)行,強(qiáng)列建議使用相對(duì)路徑,并且不要使用環(huán)境變量。添加好類路徑之后回到上一步去選擇"Main Class"即可。



    接下來(lái)先選擇我們的程序所需要的jre版本, 然后便是選擇我們自帶的jre了,這一步不是必須,但是為了更好的分發(fā)程序,我們自帶了jre, 所以有必要把我們自帶的jre指定為首選的運(yùn)行環(huán)境,如圖選擇Search sequence


     
    默認(rèn)情況下程序會(huì)去系統(tǒng)的注冊(cè)表,環(huán)境變量及相關(guān)的目錄查找jre,因?yàn)槲覀冎恍枰詭У膉re,所以這里我把默認(rèn)的選項(xiàng)移除了(如果覺(jué)得有必要的話可以把默認(rèn)的選項(xiàng)放在自帶jre選項(xiàng)的后面,不刪除),然后添加我們自己的jre所在的目錄路徑,點(diǎn)+號(hào)開(kāi)始:


     
    這里還是建議使用相對(duì)的目錄路徑:



    指定jre所在的目錄,如圖:



    最后我的jre目錄路徑就是這樣的:.\jre


     
    下面這一步啟動(dòng)畫(huà)面,有興趣的可以自已設(shè)置一下。


     
    程序最終生成了這個(gè)執(zhí)行文件: TestProcessBar.exe
    現(xiàn)在使用它,已經(jīng)可以正常利用我們自帶的jre啟動(dòng)程序了,但是整個(gè)程序仍有近19M的大小。
    這時(shí)候打個(gè)壓縮包,已經(jīng)可以進(jìn)行發(fā)布了。但是為了更大的壓縮,并制作更加方便易用的程序,下面我們使用Inno Setup進(jìn)行壓縮并制作一個(gè)安裝包。




    三、使用Inno Setup為程序制作打包安裝程序

    安裝后啟動(dòng)腳本向?qū)В鐖D所示: 
     




    這里指定程序的啟動(dòng)文件,即剛才用exe4j創(chuàng)建的exe文件。然后將整個(gè)程序目錄都包含進(jìn)去就可以了(這里因?yàn)槌绦蛑杏幸恍〆xe4j和inno setup的工程文件,故有所選擇),接下來(lái)的基本上一直按下一步就可以了,其中要設(shè)置一下安裝程序的輸出目錄,直到腳本向?qū)瓿?br />






    然后執(zhí)行該腳本即可:



    然后找到Inno Setup的輸出目錄,就可以看到編譯輸出后的安裝包了,如下圖:setup.exe
    大小已經(jīng)壓到了6.38M。
     

    利用這個(gè)就可以快速輕松的安裝你的Java桌面應(yīng)用了。
     



    四、總結(jié)
      總體來(lái)講,我們的目的是為了讓我們編寫(xiě)出的程序更加的方便易用。通過(guò)以上的學(xué)習(xí),現(xiàn)在我們已經(jīng)可以制作出可雙擊運(yùn)行、不用用戶另裝jre的、簡(jiǎn)單易用的程序安裝包。大家可以對(duì)jre精簡(jiǎn)、exe啟動(dòng)器的制作、打包安裝進(jìn)行更深入的學(xué)習(xí)。本教程中的工具只是做一個(gè)拋磚引玉,還有很多類似功能的工具有待大家去研究,最后,希望大家能夠制作出屬于自己的簡(jiǎn)單明快的一鍵式Java程序。
    原文鏈接:http://www.tkk7.com/javapro/archive/2009/03/24/JavaAppSetup.html

    posted on 2009-03-24 14:14 Jason Du 閱讀(18229) 評(píng)論(14)  編輯  收藏 所屬分類: Java

    評(píng)論

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    精簡(jiǎn)JRE這塊不錯(cuò),不過(guò)如果有工作來(lái)直接程序運(yùn)行所有過(guò)程中所用到的jar全部提取并精簡(jiǎn)化那就更好。不過(guò)好像有協(xié)議約束,不允許JDK刪減。
    2009-03-24 14:40 | witbrave

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    @witbrave
    GreenJVM可以實(shí)現(xiàn)這個(gè)功能,但是不能很好的實(shí)現(xiàn),一般都要自己手動(dòng)修正需要的class
    http://blog.csdn.net/cping1982/archive/2008/09/02/2865198.aspx
    http://www.tkk7.com/beansoft/archive/2008/12/19/247321.html
    2009-03-24 14:46 | Jason Du

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    你好~~~

    請(qǐng)教一個(gè)問(wèn)題...

    你的系統(tǒng)是英文版的嗎?看你運(yùn)行的中文軟件都很正常呢...

    我之前的時(shí)候也裝過(guò)純英文版的Windows XP系統(tǒng)...但是對(duì)中文支持有問(wèn)題呢...有的中文軟件都是亂碼呢...不知道你是怎么弄的呢?

    2009-03-26 17:32 | Bomber

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    to Bomber
    應(yīng)該是操作系統(tǒng)的問(wèn)題。打個(gè)比方,我想顯示德文,那就安裝德文語(yǔ)言支持文件。就好比Linux系統(tǒng)安裝時(shí)有支持語(yǔ)言選項(xiàng)讓你選擇。
    如果你有操作系統(tǒng)盤(pán),去google下英文xp系統(tǒng)添加中文支持。
    比如“使英文操作系統(tǒng)支持中文”有一篇。
    2009-03-26 17:48 | witbrave

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    reterterterter
    2009-03-26 18:22 | yer

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    @Bomber
    安裝系統(tǒng)的時(shí)候有一步是區(qū)域和語(yǔ)言選項(xiàng),在語(yǔ)言選項(xiàng)里面把最下面的安裝東亞語(yǔ)言選項(xiàng)選上。安裝完成后在區(qū)域語(yǔ)言選項(xiàng)里把相關(guān)項(xiàng)都設(shè)置成 Chinese (PRC) 這樣就可以了
    2009-03-27 08:30 | Jason Du

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    比較郁悶的問(wèn)題是exe4j是要收費(fèi)的,
    2009-03-27 14:54 | wavefly

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    @wavefly
    請(qǐng)認(rèn)真看文章,這里提供了注冊(cè)版本
    2009-03-27 17:30 | Jason Du

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作[未登錄](méi)  回復(fù)  更多評(píng)論   

    這樣子就方便很多了,呵呵,再不用一點(diǎn)一點(diǎn)的安裝環(huán)境配置了
    不過(guò)我已經(jīng)要先放開(kāi)java了,有時(shí)間的時(shí)候得拿起C來(lái),這骨頭不好啃
    2009-03-29 11:39 | 阿俊

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作[未登錄](méi)  回復(fù)  更多評(píng)論   

    很全啊,太強(qiáng)大了,謝謝你啦
    2009-06-19 23:07 | 小楊

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作[未登錄](méi)  回復(fù)  更多評(píng)論   

    所用到的jar怎么提取啊?
    2009-07-29 17:15 | zou

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    樓主
    我用exe4j將我的jar和精簡(jiǎn)后的jre制作exe文件,兩種模式都試過(guò)了,在運(yùn)行時(shí) 都提示是“couldn't load main class ” ,單獨(dú)運(yùn)行自己的jar文件是沒(méi)有問(wèn)題的。
    如有時(shí)間請(qǐng)賜教!!
    郵箱:zhanghw0917@163.com

    盼望賜教 !!
    2009-12-09 16:03 | zhw

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    遇到一個(gè)問(wèn)題。

    用exe4j,選擇到“最后我的jre目錄路徑就是這樣的:.\jre”,這步的時(shí)候,都沒(méi)有問(wèn)題。

    但是最后生成的exe文件,明顯沒(méi)有10多M大,只有160多k。我認(rèn)為是jre沒(méi)有被打包進(jìn)去啊。

    什么原因呢?求助。
    2010-06-17 18:38 | hover

    # re: 一鍵安裝雙擊運(yùn)行——Java安裝程序制作  回復(fù)  更多評(píng)論   

    博主你好,非常感謝你提供了這么細(xì)致教程以及樣例程序。
    我把程序放在沒(méi)有安裝JVM的XP系統(tǒng)下,Setup之后的程序無(wú)法執(zhí)行,報(bào):
    “the jvm could not be started The main method may have thrown”,也就是說(shuō),無(wú)論jar再怎么被打包,再怎么被精簡(jiǎn),在運(yùn)行這些精簡(jiǎn)打包的系統(tǒng)中,還是脫不開(kāi)java環(huán)境的束縛,還是需要先安裝好jvm的,對(duì)嗎?
    2011-07-08 14:11 | ryuume
    主站蜘蛛池模板: yellow免费网站| 亚洲第一成年人网站| 国产女高清在线看免费观看| 毛片免费观看网址| 久久久www成人免费毛片| 一个人看的www在线观看免费| 免费观看激色视频网站(性色) | 国产亚洲精品自在线观看| 亚洲伊人久久成综合人影院| 亚洲精品高清一二区久久| 亚洲精品视频在线观看你懂的| 亚洲国产精品一区二区九九| 亚洲国产成人精品女人久久久| 亚洲第一网站男人都懂| 亚洲免费日韩无码系列 | 成年在线网站免费观看无广告| 成人免费在线观看网站| 在线免费观看一级毛片| 国产老女人精品免费视频| 天堂亚洲免费视频| 亚洲国产成+人+综合| 亚洲伦理一二三四| 亚洲妇女无套内射精| 日韩久久无码免费毛片软件| 一级做a免费视频观看网站| 中国性猛交xxxxx免费看| 免费日本一区二区| 18禁止看的免费污网站| 我想看一级毛片免费的| 四虎影视永久免费视频观看| 国产精品亚洲美女久久久| 国产成人亚洲综合无码精品 | 日韩伦理片电影在线免费观看| 免费va在线观看| 亚洲愉拍99热成人精品热久久| 亚洲va久久久噜噜噜久久男同| 91亚洲精品麻豆| 亚洲AV无码成人精品区狼人影院| 一区二区三区免费电影| 久操免费在线观看| 午夜视频免费成人|