一个桌面工具,总是一个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的方法。