本文主要介紹JavaFX環境的搭建和如何部署JavaFX應用
添加JavaFX依賴
在工程 build.gradle 中加入以下內容:
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/
中
jmods
├── javafx.base.jmod
├── javafx.controls.jmod
├── javafx.fxml.jmod
├── javafx.graphics.jmod
├── javafx.media.jmod
├── javafx.swing.jmod
└── javafx.web.jmod
然后使用jlink生成自定義運行時
jlink \
--module-path ./jmods \
--add-modules java.base,javafx.base,javafx.graphics,javafx.controls \
--output runtime
- module-path 第三方模塊的目錄
- add-modules 運行時所需的模塊
- output 自定義運行時目錄名稱
生成的運行時目錄如下
runtime
├── bin
├── conf
├── include
├── legal
├── lib
├── man
└── release
編譯應用
使用gradle插件application中提供的tasks -> distribution -> installDist
構建任務來編譯應用,生成的目錄如下
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工具,該工具可以十分方便的部署跨平台應用安裝包,示例如下
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 自定義的運行時