超详细的JavaFX项目的创建、构建、打包教程


目录

        零、前言

        一、创建JavaFX项目

        二、构建JavaFX项目为jar

        三、打包JavaFX项目为exe

        四、总结


零、前言

最近写了一些JavaFX的程序,并将它们打包,过程中看了不少网上的博客与教程。对于开发经验不多的我来说,解决一个个问题无疑是一个很大的挑战,所幸最后在自己的努力和他人的帮助下完成了整个过程。鉴于JavaFX并非十分流行,如今网络上教程时效性也有很大问题,我写了这样一篇博客,来为准备使用JavaFX来开发程序的朋友们提供一些帮助。

注:该篇博客仅讲解创建、构建、打包JavaFX的项目的流程,由于JavaFX语法体系整体随时间变化不大,可以参考网络上的一些博客与视频教程。

一、创建JavaFX项目

Java 8:

因为JDK8中集成了JavaFX,所以在JDK8环境下创建JavaFX程序很简单。只需像创建普通Java项目一样创建项目,在代码中导入JavaFX相关包即可编写并直接运行即可运行JavaFX程序。

Java 8+:

在JDK8后的JDK版本不再集成JavaFX,我们需要自己向项目中引入JavaFX,所以创建JavaFX项目会复杂一些。

我们此处采用创建Maven或Gradle项目并引入依赖的办法来引入JavaFX。如果不使用Maven,也可以在Project Structure中通过给项目添加依赖的方式,来使用和运行JavaFX程序。但是此种方式不利于管理项目,在后续打包过程中也会遇到许多困难与问题,所以不推荐。

此处以Maven为例:

第一步:创建Maven项目

超详细的JavaFX项目的创建、构建、打包教程_第1张图片

(关于Maven依赖和插件下载慢的问题,可以自行百度,将下载源改为国内镜像,并调整Maven设置。)

第二步:在pom.xml文件中添加如下代码,导入依赖。


    
        org.openjfx
        javafx-controls
        19.0.2.1
    
    
        org.openjfx
        javafx-fxml
        19.0.2.1
    

超详细的JavaFX项目的创建、构建、打包教程_第2张图片

 第三步:在pom.xml文件中添加如下代码,导入插件。


    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.10.1
            
                19
                19
            
        
        
            org.openjfx
            javafx-maven-plugin
            0.0.8
            
                
                    
                    default-cli
                    
                        这里填你的主类名称
                        app
                        app
                        app
                        true
                        true
                        true
                    
                
            
        
    

添加插件之后,可以看到右边的maven侧栏多出了选项。

超详细的JavaFX项目的创建、构建、打包教程_第3张图片

此时我们创建一个入口类, 超详细的JavaFX项目的创建、构建、打包教程_第4张图片 

并将javafx-maven-plugin中的主类设置成该入口类。

设置完毕后,点击maven侧栏中plugin项下的javafx:run即可运行项目。

另外,高版本的idea支持一键创建maven包裹的JavaFX项目。超详细的JavaFX项目的创建、构建、打包教程_第5张图片

 此种创建方式与上面的效果相同。

二、构建JavaFX项目为jar

Java 8:

第一步:打开Project Structure设置界面,点击Artifacts,添加JavaFX Application。超详细的JavaFX项目的创建、构建、打包教程_第6张图片

第二步:在JavaFX一栏中的Application class中选择入口类,然后Apply设置。超详细的JavaFX项目的创建、构建、打包教程_第7张图片

第三步:点击Build,然后选择Build Artifacts,然后选择刚刚创建的Artifact,等待构建成功。超详细的JavaFX项目的创建、构建、打包教程_第8张图片

 打包完毕后即可在out\artifacts中找到对应的jar文件。

Java 8+:

第一步:在pom.xml文件中添加以下代码,添加maven-shade-plugin。


    org.apache.maven.plugins
    maven-shade-plugin
    3.2.2
    
        
            package
            
                shade
            
            
                
                    
                        example
                    
                
            
        
    

 第二步:重新加载maven设置,在mainClass标签中填入你的主类(以src/main/java文件夹为参照目录)超详细的JavaFX项目的创建、构建、打包教程_第9张图片

 第三步:在maven侧栏中启动package。

超详细的JavaFX项目的创建、构建、打包教程_第10张图片

此时,在项目文件夹中,会生成target文件夹,里面包含了所产生的jar文件。 超详细的JavaFX项目的创建、构建、打包教程_第11张图片 

当然,在Java 8+的JRE下无法运行该jar,因为Java 8+中已经不再集成JavaFX。若要直接运行,需要添加特定的VM Options,有兴趣的可以百度搜索一下。

三、打包JavaFX项目为exe

第一种方法:使用exe4j将jar文件转成exe(Java 8以及Java 8+都适用)。

首先,准备好之前构建好的jar文件,以及编译所使用的jdk版本对应的jre或jdk本身,并将它们放在同一目录下。超详细的JavaFX项目的创建、构建、打包教程_第12张图片

第一步:下载、安装并打开exe4j。(过程就不过多赘述,相信各位利用互联网能轻松解决这个问题)

第二步:正确进行打包设置。

此处的license相信各位有办法解决,当然可以不添加license,不过这样打包出来的exe会有水印。

超详细的JavaFX项目的创建、构建、打包教程_第13张图片

此处勾选第二个选项,以让没有JRE的使用者能正确运行程序。

超详细的JavaFX项目的创建、构建、打包教程_第14张图片

此处设置应用名称与输出目录。  

超详细的JavaFX项目的创建、构建、打包教程_第15张图片

此处设置exe文件名。

超详细的JavaFX项目的创建、构建、打包教程_第16张图片

 此处单击加号,在弹出窗口中选择将被打包的jar文件,再在下方选择main class。

超详细的JavaFX项目的创建、构建、打包教程_第17张图片

此处填入支持的最低与最高JRE版本号,然后点击高级选项中的search sequece。   

超详细的JavaFX项目的创建、构建、打包教程_第18张图片

如图,删除其中的所有内容并添加已准备好的与jar文件放在同一文件夹下与输出目录相同的文件夹相同的JDK或者JRE。以保持相对路径,使无Java环境与JavaFX依赖的使用者能正常使用项目。然后一直点击下一步,直至打包完成。  

超详细的JavaFX项目的创建、构建、打包教程_第19张图片

此处点击按钮可以测试打包出的exe是否可用。

测试可用后,即可将exe文件与JRE或JDK一同打包成zip或者exe安装文件。

超详细的JavaFX项目的创建、构建、打包教程_第20张图片

注:此种方法打包,由于需要包含完整的JDK或JRE,在体积上具有劣势。可以通过定制JRE的方式进行解决,有兴趣的朋友们可以搜索一下方法。对于高版本来说,还有另一种打包方法,也可以避免这一劣势,如下。

第二种方法:使用javafx-maven-plugin中的jlink直接打包项目,再将其中的bat文件转换为exe文件(适用于Java 8+)。

第一步:在源码目录下添加module-info.java文件,内容如下:

module com.example.demo {
    requires javafx.controls;
    requires javafx.fxml;


    opens com.example.demo to javafx.fxml;
    exports com.example.demo;
}

注意:此处的几个包名为程序入口类所在的包名,请确保入口类由至少一个包进行包裹。

第二步:在maven侧栏中点击javafx:jlink。

超详细的JavaFX项目的创建、构建、打包教程_第21张图片

第三步:过程结束后,在target\app\bin中应该能找到一个叫做app.bat的批处理文件。

超详细的JavaFX项目的创建、构建、打包教程_第22张图片

点击之后,应该能成功运行JavaFX程序。

之后,可以通过一些工具将bat文件转换为exe文件并添加图标,然后将应用程序打包或者制作成安装程序。此处就不过多赘述了,相信各位应该能够利用互联网自行解决。

四、总结

以上即为Java 8与Java 8+版本中JavaFX项目的创建,构建,打包流程。以上步骤我均自己操作过一遍,如果发现问题,欢迎私信与我交流。其他关于JavaFX的问题也可以在私信中提出。如果这篇博客有帮到您,不要忘记点一个赞。

你可能感兴趣的:(一些技术问题(Java),jar,java,maven)