在網絡上查了下,使用exe4j工具來實現轉換,軟件使用的基本步驟我就不說了,接下來以要創建一個32位.exe目標程序為例,講一下可能會出現的一些問題:
1.你要清楚的目標文件是32位還是64位的,如果生成的是32位,你就要使用32位的jre,如果生成的是64位,就要使用64位的jre。
圖 1
在圓圈位置進行32bit或64bit的選擇。因為我要創建的是32bit,所以就使用默認的。
2.JRE的配置(沒配置好的話報各種JAVA_HOME錯誤):
我先創建一個文件夾叫“HJ小助手”,然後把我的可執行程序limitvic1.1.jar和jre文件夾放進去,以後生成的.exe文件也放在這個目錄。
圖2
點擊圖一中的第六項JRE的search Sequence,會出現如圖所示界面:
圖三
把這三項都刪掉,然後重新選擇jre的目錄,指定目錄為“HJ小助手1.1”文件夾中的jre文件夾。如圖:
圖四
這樣子導出來的.exe可執行文件就可以執行,不會報如下圖所示的錯誤了,把"HJ小助手1.1"這個文件夾發給電腦沒有安裝jre 的小伙伴也可以使用。
3.轉化後的.exe文件無法顯示圖片資源。
我的項目是Swing項目,其中需要用到一些圖標。因為是.exe執行文件,所以讀取圖片資源的時候需要用到類加載器,而不能直接使用URL地址。
ImageIcon icon = new ImageIcon(ImageIO.read(getClass().getClassLoader(). getResource("frame.png")));
還有很重要的一點就是圖片放置的文件夾必須是系統資源文件夾,不然圖片獲取不了,如圖所示將文件夾設置為資源文件夾。
4. 既然已經生成了可運行的.exe文件,但是給別人使用的時候就要把jre文件夾也一起放進去,這樣子文件夾大小似乎達到了100多兆了,可你原本的文件其實很小,所以我用Inno Setup 打包工具,把文件夾打包成一安裝文件,這樣子占用容量就減小了很多。Inno Setup 工具的使用方法也是十分簡單,而且網絡上已經可以下載到漢化版本的。這裡就提一下在打包過程中的一個該注意的問題:
如圖所示:添加文件夾的時候,要把jre文件夾的上一級目錄添加進去,在本項目中是"HJ小助手1.1"這個文件夾,不然運行的時候找不到jre文件。
根據腳本向導步驟很快就可以生產.exe的安裝文件,大小為30多兆,比原來的文件夾小多了。