Tips.  关于创建JavaFX有很多坑 , 我尽量用更少的语言描述 .(我使用的java版本为18 , 11-18都是不包含JavaFX内置的 , 都是以插件的形式)

高版本的IDEA插件里面是有JavaFX的 , 这个貌似能让你创建JavaFX文件并自动给你导入依赖 .所以我的步骤是相对简单.

1.新建JavaFX项目, 选好 JDK版本 , 11至以上, 8应该也可以

 

javafx jar javafx jar包_无法识别

 

2 . 这里可以不选

 

javafx jar javafx jar包_无法识别_02

 

 3.Idea会将依赖, 以及样例文件(4个)给你弄好,pom ,DXML布局文件, Controller , 以及Application . 不用你主动导入lib和新建文件,

javafx jar javafx jar包_JavaFX_03

我觉得之所以会自动帮你补全依赖, 是有这个,默认是开启的, 你才能新建JavaFX, 原理就是检测到你想建FX项目, 就自动帮你配置好依赖,

或者说, IDEA本来就内置了这个功能 !

javafx jar javafx jar包_无法识别_04

这个是非常重要 . !!!!!

public class AppStart {
    public static void main(String[] args) {
        HelloApplication.main(args);
    }
}

javafx jar javafx jar包_JavaFX_05

5. 打包, 去文件->项目结构-> Artifact ->JAR->FROM  EMPTY

javafx jar javafx jar包_JavaFX_06

 

javafx jar javafx jar包_无法识别_07

主类选择最后你新建的那个类. 而非 HelloApplication

 

javafx jar javafx jar包_JavaFX_08

META-INF

javafx jar javafx jar包_java_09

 

 最后主菜单构建工件 - 构建 ,  构建的英文是 Artifact

javafx jar javafx jar包_java_10

 

 

javafx jar javafx jar包_java_11

 最后 , 可直接运行这个Jar文件 , 

javafx jar javafx jar包_无法识别_12

 

这里面最重要的, 无非是需要你增加一个程序入口, 这里是AppStart.class , 貌似系统并不能识别HelloApplication.

其我尝试过打包成JavaFX应用程序, 但是系统提示 FX组件不可用 , 或者说Java不内置JavaFX, 造成无法识别 , 但是插件又不能

用来直接打包, 这里我搞不懂

javafx jar javafx jar包_无法识别_13

 

 Can't build artifact - fx:deploy is not avaloable in this JDK.

意思就是这个JDK不包含FX工具 , 好奇怪, 插件不是有吗, 为啥不去找插件用来打包.