一、簡介
這個打包程序主要包含了對Java程序的普通打包、對程序的管理員權限設置。因為自己打包的時候要求程序在32位操作系統和64位操作系統下都能使用,所以有些打包步驟和設置都不相同。打包過程中主要使用到的軟件有exe4j、Inno Setup;修改用戶權限時使用到了eXeScope.exe和ResHacker.exe。
二、具體打包步驟
1.准備好要打包的完整程序。在這個程序中包含着JRE,打包后的程序用戶輕松點擊就能運行。
2.使用exe4j制作一個exe執行文件,並指定自帶的JRE。以下為exe4j啟動界面,點擊下一步開始創建配置文件。
3.選擇類型,在這里選擇第一個,保證程序仍具有跨平台特性。如果選擇第二個,可以把程序完全編譯成exe文件,可以更好地保護程序不被反編譯。
4.設置程序的短文件名、源文件夾路徑(比如我的文件夾放在桌面路徑為C:\Users\Administrator\Desktop\MyExample),以及生成的exe文件存放的目錄,exe存放目錄必須指定到源文件夾下。
5.為生成的exe文件命名,也可以給它指定一個ico類型的圖標。其他設置如圖。
6.把程序中所用到的類路徑添加上去,然后指定程序的啟動類,其他如果沒有必要,可不填。
基本上程序使用到的Jar文件都要添加,可逐個添加,也可以添加整個文件夾或者使用系統環境變量,為了讓程序在其他地方也能完美運行,建議使用相對路徑,並且不要使用環境變量。添加好類路徑后一定要選擇”Main Class”,否則打包后的程序也是不能執行的。
7.把自帶的JRE包含到程序中,先設置我們程序需要的JRE版本。
8.移除默認選項,添加自帶的JRE。
9.接下來直接點擊下一步即可,直到最后一步完成,可在目錄下找到生成的exe文件。
三、使用Inno Setup進行壓縮並制作一個安裝包
1.選擇新建一個腳本。
2.填寫應用程序名、版本號、程序發布者以及應用程序網站。
3.點擊下一步。
4.指定程序的啟動文件,即剛剛用exe4j創建的exe文件,並將整個程序目錄都包含進去。
5.接下來的幾步都可以直接選擇下一步。完成后,運行這個腳本。
6.等待編譯
7.編譯完成后在默認輸出目錄里可以找到生成的安裝包。
8.雙擊安裝包,根據提示就可以完成安裝過程。最終我安裝好的程序如圖。
四、給用戶添加管理員權限。
對於有些程序來說,需要管理員權限才能正常運行。雖然用戶在使用時可以選擇“以管理員身份運行”,但是這樣會影響用戶體驗。在這里介紹一下在打包的過程中添加管理員權限的方法。
使用Inno Setup生成腳本后,在[Setup]節點添加PrivilegesRequired=admin。然后編譯腳本,這一次生成的exe文件,在安裝后能夠直接以管理員權限正常運行。
依靠以上的方法我的程序在32位操作系統下能夠正常運行,但是在64位操作系統下不能夠正常運行。因為我打包的時候JRE是32位下的,在exe4j下打包時也需要選擇打包的程序是32位還是64位。
五、打包64位操作系統下使用的程序
前面的步驟與二中的具體打包步驟相似,為程序命名的步驟起有所區別。記住要准備在64位操作系統下使用的JRE包含在文件夾中。
1.為了與32位打包過程有所區別,在命名后都添加了標志。填好相關內容后選擇“Advanced Options”中的”32-bit or 64-bit”。
2.勾選當前選項,如果不勾選的話還是生成的32位程序。
3.設置權限,選擇第三個即為管理員權限。
4.接下來的步驟和打包32位程序相同。直到生成exe文件。注意添加JRE時一定要添加64位的。
5.使用Inno Setup生成安裝包時,修改管理員權限除去上述步驟還應該添加一些步驟如下。
[1] 找到Inno Setup的安裝路徑,如C:\Program Files\Inno Setup 5,找到SetupLdr.e32文件。
[2] 下載使用ResHacker.exe可以對這個文件進行修改。修改后注意保存。
6.生成的64位程序安裝步驟與32位程序安裝步驟一樣,在64位下能完美運行。
64位下打包賦予了 管理員權限后圖標變成了如下圖,而在32位系統下圖標並沒有什么變化,只能在使用過程中感受到不同。
六、致謝
在完成打包過程中,讀了很多相關文章,感謝作者提供的幫助。
附文章地址:
http://www.blogjava.net/huliqing/archive/2008/04/18/193907.html
http://www.cnblogs.com/walker-lc/articles/3470679.html
http://www.cnblogs.com/SnailProgramer/p/4243666.html
http://blog.csdn.net/inputuconfirmcode/article/details/39485815