本文主要介绍JavaFX环境的搭建和如何部署JavaFX应用
添加JavaFX依赖
在工程 build.gradle 中加入以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
|
plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.8' // 引入JavaFX的jar包
}
javafx {
version = "14" // Java版本
modules = [ 'javafx.controls' ] // 所需要的模块
manifest {
mainClassName = 'com.ingbyr.vdm.gui.Main' // 运行入口
}
}
|
自定义运行时
Java9引入的Jigsaw允许我们制作自己的JRE,从而有效地减少应用的大小
首先下载JavaFX的jmods保存到 ./jmods/
中
1
2
3
4
5
6
7
8
|
jmods
├── javafx.base.jmod
├── javafx.controls.jmod
├── javafx.fxml.jmod
├── javafx.graphics.jmod
├── javafx.media.jmod
├── javafx.swing.jmod
└── javafx.web.jmod
|
然后使用jlink生成自定义运行时
1
2
3
4
|
jlink \
--module-path ./jmods \
--add-modules java.base,javafx.base,javafx.graphics,javafx.controls \
--output runtime
|
- module-path 第三方模块的目录
- add-modules 运行时所需的模块
- output 自定义运行时目录名称
生成的运行时目录如下
1
2
3
4
5
6
7
8
|
runtime
├── bin
├── conf
├── include
├── legal
├── lib
├── man
└── release
|
编译应用
使用gradle插件application中提供的tasks -> distribution -> installDist
构建任务来编译应用,生成的目录如下
1
2
3
4
5
6
7
8
9
10
11
12
|
build/install
└── vdm-gui
├── bin
│ ├── vdm-gui
│ └── vdm-gui.bat
└── lib
├── javafx-base-14-mac.jar
├── javafx-base-14.jar
├── javafx-controls-14-mac.jar
├── javafx-graphics-14-mac.jar
├── javafx-graphics-14.jar
└── vdm-gui-2.0.0.jar
|
部署应用
Java14中正式提供了jpackage工具,该工具可以十分方便的部署跨平台应用安装包,示例如下
1
2
3
4
5
6
7
|
jpackage \
--input vdm-gui/build/install/vdm-gui/lib \
--name vdm14 \
--main-jar vdm-gui-2.0.0.jar \
--main-class com.ingbyr.vdm.gui.Main \
--type dmg \
--runtime-image ~/IdeaProjects/vdm14/runtime
|
- input 需要打包的jar目录
- name 应用名称
- main-jar 主程序jar包
- main-class 若jar中没有指定主类,则可以使用此参数指定
- type 安装包类型,可选:
- Windows: exe msi
- Linux: rpm deb
- MacOS: pkg dmg
- runtime-image 自定义的运行时