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

时间:2024-04-08 19:55:25

一个桌面工具,总是一个jar包的形式,说实话感觉很别扭,明明是一个软件,却没有自己的图标,不是可执行程序,还是把它打包下会比较好吧。

Mac系统很特别啊,最开始我只找到了一个JarBundler,通过Ant进行打包,操作倒也不困难,但是SpringBoot的程序要求JRE6是啥意思?

算了算了,还是自己折腾吧。

javaPackager

这个是jdk自带的一个打包Java的工具,他是一个命令行工具,用起来很麻烦,参数会比较多,不过现在有idea或者eclipse都是支持直接打包的,我暂且不做解释,以后补回来。

Javapackager在Windows下就可以用来打exe包,但有一个不好的地方,他打包的exe不支持中文路径,所以我在Windows下已经不再使用这个工具,用回了exe4j。不过Mac下木有其他的东西了,还是用这个吧。

配置Idea的工程并打包app

SpringBoot: Idea中把jar包变成Mac的APP的方法
就像这样,添加一个javaFx的Artifacts,其他的设置都可以保持默认,但是里面有一个JavaFX选项卡是需要自己手动配置的,我的工程是使用SpringBoot管理的JavaFx工程,所以可以直接这样创建。

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

这里面的Native Bundle要直接选择image,这样待会他会创建一个含有jre的app包,其他配置按照自己的情况进行填写,配置完毕后build这个Artifact就可以得到一个app包了,不过到现在这个app包还是不能用的。
SpringBoot: Idea中把jar包变成Mac的APP的方法
SpringBoot: Idea中把jar包变成Mac的APP的方法

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

这个app就是JavaPackager打包好的app,但是还是不能用的。

使用Maven打包SpringBoot并修改app内容

idea右侧,选择Maven打开相应的窗口,找到package,运行它,就可以得到Maven打包好的jar。
SpringBoot: Idea中把jar包变成Mac的APP的方法
SpringBoot: Idea中把jar包变成Mac的APP的方法

这个圈起来的就是我打包之后的jar包了,这个jar包是可以直接运行的,接下来找到刚刚的app文件,里面有一个jar包,jar包旁边还有一个cfg配置,这里需要删掉原有jar包,用Maven打包的jar替换过去,然后修改cfg配置中的mainClass为SpringBoot的jarLauncher。

SpringBoot: Idea中把jar包变成Mac的APP的方法
显示包内容,到里面找到这两个
SpringBoot: Idea中把jar包变成Mac的APP的方法

打开Cfg文件,修改启动class

SpringBoot: Idea中把jar包变成Mac的APP的方法
然后替换掉jar包,用Maven的jar代替原有的jar
SpringBoot: Idea中把jar包变成Mac的APP的方法

好的,到目前为止,我们双击这个app,如果没有其他问题的话,他就已经可以正常运行了。但是默认的黑色图标还是得处理下的。

生成Mac的icns图标并且更换到APP

需要提前准备一个文件夹,一些尺寸的png,他们分别是:

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

一般需要准备的尺寸有:

16x16
32x32
64x64
128x128
512x512

这些。可以参考这个博客所描述的。

SpringBoot: Idea中把jar包变成Mac的APP的方法
准备好png之后,重命名文件夹,名字的结尾加上.iconset,然后执行命令:

iconutil -c icns 【这里换成你的iconset文件夹的地址】

SpringBoot: Idea中把jar包变成Mac的APP的方法
好的,图标也有了,接下来把它换到app包内部,替换掉原有的icns,原有的icns就在包中的resource文件夹内,很好找。

运行APP文件,查看效果

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

启动成功,运行正常,以上就是mac下打包jar为app的方法。