-
开发环境
- JDK 17(如果使用Java8开发,则没有jpackage命令)
- JavaFX SDK 17.0.2
- Sqlite3
- SceneBuilder 20.0.0
-
技术特点
-
controller或者组件传递信息使用事件总线的方式
-
定时任务使用Quartz框架,可以开启、关闭、与动态调整线程池数量
-
cd 项目目录
mvn clean package如果你本地有Java运行环境,可以直接执行 java -jar target/zhengjianshibie-1.0-SNAPSHOT-jar-with-dependencies.jar 或者 java --module-path /path/to/javafx-sdk/lib --add-modules javafx.controls,javafx.fxml -jar target/zhengjianshibie-1.0-SNAPSHOT.jar
/path/to/javafx-sdk/lib 需要替换成你自己本地的JavaFx SDK的路径
- windows
jpackage --name zhengjianshibie --input target --app-version 1.0.0 --main-jar zhengjianshibie-1.0-SNAPSHOT-jar-with-dependencies.jar --type app-image --dest output --icon tulip.ico --vendor java0904 --copyright java0904 --description JavaFXMeter- mac
jpackage --name zhengjianshibie --input target --app-version 1.0.0 --main-jar zhengjianshibie-1.0-SNAPSHOT-jar-with-dependencies.jar --type app-image --dest output --icon tulip.icns --vendor java0904 --copyright java0904 --description JavaFXMeter打包成镜像之后,也是可以直接启动的
- 打成安装包
- windows
jpackage --type msi --win-dir-chooser --win-menu --win-shortcut --name zhengjianshibie --app-image output/zhengjianshibie --dest 这里的output是上一步生成的镜像目录,注意这里一定还要加上/zhengjianshibie,不然会提示如下错误,我在执行上个命令失败后,查看C:\XXXX里面的这个文件,根本找不到,加上了--temp 参数之后,进到里面才发现目录多了一层,于是猜测是这个原因,但是这个问题我用了好几天才解决
- mac
jpackage --name zhengjianshibie --app-image output注意这里--app-image output参数不需要再加上/zhengjianshibie,和windows系统不一样
此时会生成dmg文件,安装好之后,如果打开提示文件已经损坏,则需要执行一下安装好之后执行一下sudo xattr -r -d com.apple.quarantine /Applications/zhengjianshibie.app
要在Mac上使用brew命令安装iconutil,请按照以下步骤进行操作:
-
打开终端应用程序(在“应用程序”文件夹的“实用工具”文件夹中)。
-
输入以下命令来安装Homebrew(如果你已经安装了Homebrew,可以跳过这一步):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
安装
iconutil,运行以下命令:brew install iconutil
-
安装完成后,你现在可以在终端中使用
iconutil命令了。
接下来,我将介绍一下sips命令的使用,并给出一些常用参数的示例:
sips是一个用于图像处理的命令行工具,可以在终端中执行各种图像操作。
常用参数和示例:
-
调整图像大小:
sips -z height width image.jpg
示例:
sips -z 600 800 image.jpg
-
裁剪图像:
sips -c top left bottom right image.jpg --out cropped_image.jpg
示例:
sips -c 100 100 400 400 image.jpg --out cropped_image.jpg
-
旋转图像:
sips -r degrees image.jpg
示例:
sips -r 90 image.jpg
-
转换图像格式:
sips -s format output_format image.jpg --out converted_image.output_format
示例:
sips -s format png image.jpg --out converted_image.png
现在,我将向你展示如何使用sips和iconutil命令来生成一个.icns文件:
-
创建一个包含不同尺寸的PNG图像文件的文件夹,例如
icon.iconset。# 下载一个图片,命名为pic.png mkdir icon.iconset -
将你的PNG图像文件放置在
icon.iconset文件夹中,确保命名符合图标规范,使用sips命令将pic.png文件进行图像处理。# 全部拷贝到命令行回车执行,执行结束之后去tmp.iconset查看十张图片是否生成好 sips -z 16 16 pic.png --out icon.iconset/icon_16x16.png sips -z 32 32 pic.png --out icon.iconset/icon_16x16@2x.png sips -z 32 32 pic.png --out icon.iconset/icon_32x32.png sips -z 64 64 pic.png --out icon.iconset/icon_32x32@2x.png sips -z 128 128 pic.png --out icon.iconset/icon_128x128.png sips -z 256 256 pic.png --out icon.iconset/icon_128x128@2x.png sips -z 256 256 pic.png --out icon.iconset/icon_256x256.png sips -z 512 512 pic.png --out icon.iconset/icon_256x256@2x.png sips -z 512 512 pic.png --out icon.iconset/icon_512x512.png sips -z 1024 1024 pic.png --out icon.iconset/icon_512x512@2x.png -
使用iconutil工具将
icon.iconset文件夹中的PNG图像文件转换为.icns文件:conutil -c icns icon.iconset -o Icon.icns
-
如果一切顺利,将在同一目录下生成一个名为
icon.icns的.icns文件。
通过以上步骤,你应该能够成功生成一个.icns文件,其中包含来自icon.iconset文件夹的不同尺寸的PNG图像文件。
- 自定义运行速度
参考:japckage相关命令




