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
就像這樣,新增一個javaFx的Artifacts,其他的設定都可以保持預設,但是裡面有一個JavaFX選項卡是需要自己手動配置的,我的工程是使用SpringBoot管理的JavaFx工程,所以可以直接這樣建立。
這裡面的Native Bundle要直接選擇image,這樣待會他會建立一個含有jre的app包,其他配置按照自己的情況進行填寫,配置完畢後build這個Artifact就可以得到一個app包了,不過到現在這個app包還是不能用的。
這個app就是JavaPackager打包好的app,但是還是不能用的。
使用Maven打包SpringBoot並修改app內容
idea右側,選擇Maven開啟相應的視窗,找到package,執行它,就可以得到Maven打包好的jar。
這個圈起來的就是我打包之後的jar包了,這個jar包是可以直接執行的,接下來找到剛剛的app檔案,裡面有一個jar包,jar包旁邊還有一個cfg配置,這裡需要刪掉原有jar包,用Maven打包的jar替換過去,然後修改cfg配置中的mainClass為SpringBoot的jarLauncher。
顯示包內容,到裡面找到這兩個
開啟Cfg檔案,修改啟動class
然後替換掉jar包,用Maven的jar代替原有的jar
好的,到目前為止,我們雙擊這個app,如果沒有其他問題的話,他就已經可以正常運行了。但是預設的黑色圖示還是得處理下的。
生成Mac的icns圖示並且更換到APP
需要提前準備一個資料夾,一些尺寸的png,他們分別是:
icon_尺寸x尺寸.png
icon_尺寸x尺寸@2x.png(即尺寸的二倍大小)
一般需要準備的尺寸有:
16x16
32x32
64x64
128x128
512x512
這些。可以參考這個部落格所描述的。
準備好png之後,重新命名資料夾,名字的結尾加上.iconset
,然後執行命令:
iconutil -c icns 【這裡換成你的iconset資料夾的地址】
好的,圖示也有了,接下來把它換到app包內部,替換掉原有的icns,原有的icns就在包中的resource
資料夾內,很好找。
執行APP檔案,檢視效果
啟動成功,執行正常,以上就是mac下打包jar為app的方法。