1. 程式人生 > >SpringBoot: Idea中把jar包變成Mac的APP的方法

SpringBoot: Idea中把jar包變成Mac的APP的方法

一個桌面工具,總是一個jar包的形式,說實話感覺很彆扭,明明是一個軟體,卻沒有自己的圖示,不是可執行程式,還是把它打包下會比較好吧。

Mac系統很特別啊,最開始我只找到了一個JarBundler,通過Ant進行打包,操作倒也不困難,但是SpringBoot的程式要求JRE6是啥意思?

算了算了,還是自己折騰吧。

文章目錄

javaPackager

這個是jdk自帶的一個打包Java的工具,他是一個命令列工具,用起來很麻煩,引數會比較多,不過現在有idea或者eclipse都是支援直接打包的,我暫且不做解釋,以後補回來。

Javapackager在Windows下就可以用來打exe包,但有一個不好的地方,他打包的exe不支援中文路徑,所以我在Windows下已經不再使用這個工具,用回了exe4j。不過Mac下木有其他的東西了,還是用這個吧。

配置Idea的工程並打包app

idea中配置fx
就像這樣,新增一個javaFx的Artifacts,其他的設定都可以保持預設,但是裡面有一個JavaFX選項卡是需要自己手動配置的,我的工程是使用SpringBoot管理的JavaFx工程,所以可以直接這樣建立。

配置Application

這裡面的Native Bundle要直接選擇image,這樣待會他會建立一個含有jre的app包,其他配置按照自己的情況進行填寫,配置完畢後build這個Artifact就可以得到一個app包了,不過到現在這個app包還是不能用的。
build 1
build 2

build3

這個app就是JavaPackager打包好的app,但是還是不能用的。

使用Maven打包SpringBoot並修改app內容

idea右側,選擇Maven開啟相應的視窗,找到package,執行它,就可以得到Maven打包好的jar。
Maven 1
jar

這個圈起來的就是我打包之後的jar包了,這個jar包是可以直接執行的,接下來找到剛剛的app檔案,裡面有一個jar包,jar包旁邊還有一個cfg配置,這裡需要刪掉原有jar包,用Maven打包的jar替換過去,然後修改cfg配置中的mainClass為SpringBoot的jarLauncher。

app檔案
顯示包內容,到裡面找到這兩個
jar包和cfg

開啟Cfg檔案,修改啟動class

cfg檔案的修改
然後替換掉jar包,用Maven的jar代替原有的jar
替換掉jar

好的,到目前為止,我們雙擊這個app,如果沒有其他問題的話,他就已經可以正常運行了。但是預設的黑色圖示還是得處理下的。

生成Mac的icns圖示並且更換到APP

需要提前準備一個資料夾,一些尺寸的png,他們分別是:

icon_尺寸x尺寸.png
icon_尺寸x尺寸@2x.png(即尺寸的二倍大小)

一般需要準備的尺寸有:

16x16
32x32
64x64
128x128
512x512

這些。可以參考這個部落格所描述的。

需要的png
準備好png之後,重新命名資料夾,名字的結尾加上.iconset,然後執行命令:

iconutil -c icns 【這裡換成你的iconset資料夾的地址】

在這裡插入圖片描述
好的,圖示也有了,接下來把它換到app包內部,替換掉原有的icns,原有的icns就在包中的resource資料夾內,很好找。

執行APP檔案,檢視效果

效果圖

啟動成功,執行正常,以上就是mac下打包jar為app的方法。