把Jar文件轉(zhuǎn)成exe安裝文件的實現(xiàn)方法
1.你要清楚的目標文件是32位還是64位的,如果生成的是32位,你就要使用32位的jre,如果生成的是64位,就要使用64位的jre。
圖 1
在圓圈位置進行32bit或64bit的選擇。因為我要創(chuàng)建的是32bit,所以就使用默認的。
2.JRE的配置(沒配置好的話報各種JAVA_HOME錯誤):
我先創(chuàng)建一個文件夾叫“HJ小助手”,然后把我的可執(zhí)行程序limitvic1.1.jar和jre文件夾放進去,以后生成的.exe文件也放在這個目錄。
圖2
點擊圖一中的第六項JRE的search Sequence,會出現(xiàn)如圖所示界面:
圖三
把這三項都刪掉,然后重新選擇jre的目錄,指定目錄為“HJ小助手1.1”文件夾中的jre文件夾。如圖:
圖四
這樣子導(dǎo)出來的.exe可執(zhí)行文件就可以執(zhí)行,不會報如下圖所示的錯誤了,把"HJ小助手1.1"這個文件夾發(fā)給電腦沒有安裝jre 的小伙伴也可以使用。
3.轉(zhuǎn)化后的.exe文件無法顯示圖片資源。
我的項目是Swing項目,其中需要用到一些圖標。因為是.exe執(zhí)行文件,所以讀取圖片資源的時候需要用到類加載器,而不能直接使用URL地址。
ImageIcon icon = new ImageIcon(ImageIO.read(getClass().getClassLoader(). getResource("frame.png")));
還有很重要的一點就是圖片放置的文件夾必須是系統(tǒng)資源文件夾,不然圖片獲取不了,如圖所示將文件夾設(shè)置為資源文件夾。
4. 既然已經(jīng)生成了可運行的.exe文件,但是給別人使用的時候就要把jre文件夾也一起放進去,這樣子文件夾大小似乎達到了100多兆了,可你原本的文件其實很小,所以我用Inno Setup 打包工具,把文件夾打包成一安裝文件,這樣子占用容量就減小了很多。Inno Setup 工具的使用方法也是十分簡單,而且網(wǎng)絡(luò)上已經(jīng)可以下載到漢化版本的。這里就提一下在打包過程中的一個該注意的問題:
如圖所示:添加文件夾的時候,要把jre文件夾的上一級目錄添加進去,在本項目中是"HJ小助手1.1"這個文件夾,不然運行的時候找不到j(luò)re文件。
根據(jù)腳本向?qū)Р襟E很快就可以生產(chǎn).exe的安裝文件,大小為30多兆,比原來的文件夾小多了。
以上就是小編為大家?guī)淼陌袹ar文件轉(zhuǎn)成exe安裝文件的實現(xiàn)方法全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
MAC?在類路徑或引導(dǎo)類路徑中找不到程序包?java.lang問題
這篇文章主要介紹了MAC?在類路徑或引導(dǎo)類路徑中找不到程序包?java.lang問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11使用Jenkins來構(gòu)建SVN+Maven項目的實現(xiàn)
這篇文章主要介紹了使用Jenkins來構(gòu)建SVN+Maven項目的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09java?SpringBoot注解@Async不生效的解決方法
大家好,本篇文章主要講的是java?SpringBoot注解@Async不生效的解決方法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01SpringBoot后端接收數(shù)組對象的實現(xiàn)
這篇文章主要介紹了SpringBoot后端接收數(shù)組對象的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11分析那些不講武德的SDK(構(gòu)造使用規(guī)范)
這篇文章主要為大家介紹了盤點分析那些不講武德的SDK(構(gòu)造規(guī)范)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05在Spring Boot中使用Spring-data-jpa實現(xiàn)分頁查詢
如何使用jpa進行多條件查詢以及查詢列表分頁呢?下面我將介紹兩種多條件查詢方式。具體實例代碼大家參考下本文吧2017-07-07java 學(xué)習(xí)筆記(入門篇)_多選擇結(jié)構(gòu)switch語句
在java中為多路分支選擇流程專門提供了switch語句,switch語句根據(jù)一個表達式的值,選擇運行多個操作中的一個,感興趣的朋友可以了解下2013-01-01利用ThreadLocal實現(xiàn)一個上下文管理組件
本文基于ThreadLocal原理,實現(xiàn)了一個上下文狀態(tài)管理組件Scope,通過開啟一個自定義的Scope,在Scope范圍內(nèi),可以通過Scope各個方法讀寫數(shù)據(jù),感興趣的可以了解一下2022-10-10