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