<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, 評論 - 63, 引用 - 0
    數(shù)據(jù)加載中……

    一鍵安裝雙擊運行——Java安裝程序制作

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

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

      針對windows平臺,主要方法是:先將JRE進行精簡,再使用工具exe4j 來解決雙擊運行使用的問題,最后用Inno Setup打包成安裝程序, 這樣一來,我們的Java應用就和普通的windows應用程序一樣了。

    本文相關下載

    本教程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 注冊版
    http://www.uushare.com/user/javapro/file/1418327
    http://www.rayfile.com/files/c56bebba-1826-11de-9b55-0019d11a795f/

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


    一、精簡JRE


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

    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程序帶上精簡的jre(附工具)
    http://glemir.xplore.cn/archives/200

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

    Java應用——精簡JRE體積的小工具
    http://blog.csdn.net/cping1982/archive/2008/09/02/2865198.aspx

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

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

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

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

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

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


     
    以下是exe4j的啟動界面,點擊Next開始創(chuàng)建配置文件。
     


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



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



    接下來,可以給我們即將生成的exe文件起一個名字,如我的“TestProcessBar.exe”,還可以給它指定一個ico類型的圖標,其它按默認就可以了,如圖:


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



    接下來的這一步,我們需要把程序中所用到的類路徑添加上去。然后指定程序的啟動類,其它如果沒有必要的話,則按默認即可,點擊+號添加類路徑:


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



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


     
    默認情況下程序會去系統(tǒng)的注冊表,環(huán)境變量及相關的目錄查找jre,因為我們只需要自帶的jre,所以這里我把默認的選項移除了(如果覺得有必要的話可以把默認的選項放在自帶jre選項的后面,不刪除),然后添加我們自己的jre所在的目錄路徑,點+號開始:


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



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



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


     
    下面這一步啟動畫面,有興趣的可以自已設置一下。


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




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

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




    這里指定程序的啟動文件,即剛才用exe4j創(chuàng)建的exe文件。然后將整個程序目錄都包含進去就可以了(這里因為程序中有一些exe4j和inno setup的工程文件,故有所選擇),接下來的基本上一直按下一步就可以了,其中要設置一下安裝程序的輸出目錄,直到腳本向?qū)瓿?br />






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



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

    利用這個就可以快速輕松的安裝你的Java桌面應用了。
     



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

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

    評論

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

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

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

    @witbrave
    GreenJVM可以實現(xiàn)這個功能,但是不能很好的實現(xiàn),一般都要自己手動修正需要的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: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

    你好~~~

    請教一個問題...

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

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

    2009-03-26 17:32 | Bomber

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

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

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

    reterterterter
    2009-03-26 18:22 | yer

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

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

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

    比較郁悶的問題是exe4j是要收費的,
    2009-03-27 14:54 | wavefly

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

    @wavefly
    請認真看文章,這里提供了注冊版本
    2009-03-27 17:30 | Jason Du

    # re: 一鍵安裝雙擊運行——Java安裝程序制作[未登錄]  回復  更多評論   

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

    # re: 一鍵安裝雙擊運行——Java安裝程序制作[未登錄]  回復  更多評論   

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

    # re: 一鍵安裝雙擊運行——Java安裝程序制作[未登錄]  回復  更多評論   

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

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

    樓主
    我用exe4j將我的jar和精簡后的jre制作exe文件,兩種模式都試過了,在運行時 都提示是“couldn't load main class ” ,單獨運行自己的jar文件是沒有問題的。
    如有時間請賜教!!
    郵箱:zhanghw0917@163.com

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

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

    遇到一個問題。

    用exe4j,選擇到“最后我的jre目錄路徑就是這樣的:.\jre”,這步的時候,都沒有問題。

    但是最后生成的exe文件,明顯沒有10多M大,只有160多k。我認為是jre沒有被打包進去啊。

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

    # re: 一鍵安裝雙擊運行——Java安裝程序制作  回復  更多評論   

    博主你好,非常感謝你提供了這么細致教程以及樣例程序。
    我把程序放在沒有安裝JVM的XP系統(tǒng)下,Setup之后的程序無法執(zhí)行,報:
    “the jvm could not be started The main method may have thrown”,也就是說,無論jar再怎么被打包,再怎么被精簡,在運行這些精簡打包的系統(tǒng)中,還是脫不開java環(huán)境的束縛,還是需要先安裝好jvm的,對嗎?
    2011-07-08 14:11 | ryuume
    主站蜘蛛池模板: 香蕉视频免费在线| 狠狠色伊人亚洲综合网站色| 亚洲欧美成人一区二区三区| 67194熟妇在线永久免费观看 | 无码乱人伦一区二区亚洲一| 亚洲人成网亚洲欧洲无码久久| 亚洲AV无码专区在线厂| 性色av无码免费一区二区三区| 久久综合亚洲色HEZYO社区| 免费A级毛片av无码| 亚洲高清在线观看| 中文字幕不卡高清免费| 亚洲精品无码不卡在线播放HE| 国产一精品一av一免费爽爽| 亚洲AV无码一区东京热久久| 久久精品无码精品免费专区| 久久精品国产亚洲av高清漫画 | 大香人蕉免费视频75| 亚洲AV日韩AV永久无码色欲 | 91亚洲自偷手机在线观看| 亚洲日韩中文无码久久| 最近免费字幕中文大全视频| 久久久久亚洲精品成人网小说| 九九精品免费视频| 亚洲av日韩综合一区久热| 亚洲国产精品无码专区在线观看| 91短视频在线免费观看| 久久人午夜亚洲精品无码区| 亚洲最大免费视频网| 国产精品国产免费无码专区不卡 | 亚洲AV无码一区东京热久久| 又黄又大又爽免费视频| 国产真人无码作爱免费视频 | 亚洲伦理中文字幕| 国产在线观看免费完整版中文版| 日韩中文字幕免费视频| 一区二区三区免费视频网站| 亚洲一区二区三区高清| 国产亚洲精品成人a v小说| 1000部禁片黄的免费看| 精品国产日韩亚洲一区91|