官网:JavaFX 国区官网:JavaFX中文官方网站
软件下载1: javafx sdk下载 地址:JavaFX下载 | JavaFX中文官方网站 下载对应java的版本,一般分java11、java17长期版本,java8版本只有b测版本
2:source builder图形界面下载 地址:Scene Builder | JavaFX中文官方网站 下载对应java版本,分java8和java11+的版本
3:安装文档 get-start说明: Getting Started with JavaFX
IDEA与javaFX IDEA下载fx插件(高版本自带)setting -> plugins -> javaFX -> install
Languages & FreameWorks -> javaFX -> Path to SceneBuilder -> {SceneBuilder安装目录}
1:直接看官网的配置
教程地址: Getting Started with JavaFX
2:自己创建新建Maven项目配置
File -> New -> Project -> Maven -> Create from archetype -> Add archetype
参数: groupId -> org.openjfx artifactId -> javafx-maven-archetypes version -> 0.0.6
选择刚刚创建的archetype进入下一步
新建项目属性 GroupId(com.demo) Artfactid(HelloFX) Version(1.0-SNAPSHOT)
下一步修改archetypeArtifactId为 javafx-archetype-fxml ,新增javafx为11.0.2 (下载的版本 java11版本javafx需要低于17)
如上配置,打开正常构建后悔自动添加javaFX配置与插件
新建一个Main应用程序,写入
public class Main {
public static void main(String[] args) {
Application.launch(App.class);
}
}
启动Main程序
修改pom.xml打包为可执行jar包配置
添加如下2个插件
org.apache.maven.plugins maven-dependency-plugincopy package copy-dependencies ${project.build.directory}/lib org.apache.maven.plugins maven-jar-plugin3.2.0 true lib/ com.demo.Main
执行启动jar包
打包注意点:
假如系统多个java版本,导致maven编译时jdk版本不一致时,修改maven编译运行版本 Setting -> Build,Execution,Deployment -> Build Tools -> Maven -> Run -> 修改为需要的版本
Graalvm打包JavaFX 添加依赖pom
(这里下载使用java11和graalvm版本20.3.5)
20.3.5
org.graalvm.sdk graal-sdk${graal-sdk.version} provided
构建的属性
项目复制到C盘org.graalvm.nativeimage native-image-maven-plugin${graal-sdk.version} native-image package false HelloFX com.demo.Main --force-fallback --native-image-info bin/
(和native-image指令同一个驱动盘)
项目封装exe打开打包窗口
执行打包命令mvn clean package
打包完成示意图
到bin执行exe文件,完美执行
正常运行
graalvm新技术特点
把exe和jar包复制到其他windows系统也能正常执行,并且启动内存减少、启动速度提高
打包注意点:graalvm_home 和 native-image 和 pom.xml 的 graal-sdk 版本一致
必须使用x64 Native Tools Command prompt for VS 2019窗口执行native-image打包,不然会出现cl.exe找不到的错误
项目打包路径必须与graalvm同一个驱动盘(基本都在C盘),否则会出现 'other' has different root错误
===========graalvm官网 下载地址:GraalVM 快速启动地址:GraalVM
====================完整的pom.xml
4.0.0 com.demo HelloFX1.0-SNAPSHOT UTF-8 11 11 20.3.5 org.openjfx javafx-controls15.0.1 org.openjfx javafx-fxml15.0.1 org.graalvm.sdk graal-sdk${graal-sdk.version} provided org.apache.maven.plugins maven-compiler-plugin3.8.0 11 org.openjfx javafx-maven-plugin0.0.5 default-cli com.demo.App org.apache.maven.plugins maven-dependency-plugincopy package copy-dependencies ${project.build.directory}/lib org.apache.maven.plugins maven-jar-plugin3.2.0 true lib/ com.demo.Main org.graalvm.nativeimage native-image-maven-plugin${graal-sdk.version} native-image package false HelloFX com.demo.Main --force-fallback --native-image-info bin/



