超详细的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项目

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

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

<dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>19.0.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-fxml</artifactId>
        <version>19.0.2.1</version>
    </dependency>
</dependencies>

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

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.10.1</version>
            <configuration>
                <source>19</source>
                <target>19</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>0.0.8</version>
            <executions>
                <execution>
                    <!-- Default configuration for running with: mvn clean javafx:run -->
                    <id>default-cli</id>
                    <configuration>
                        <mainClass>这里填你的主类名称</mainClass>
                        <launcher>app</launcher>
                        <jlinkZipName>app</jlinkZipName>
                        <jlinkImageName>app</jlinkImageName>
                        <noManPages>true</noManPages>
                        <stripDebug>true</stripDebug>
                        <noHeaderFiles>true</noHeaderFiles>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

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

此时我们创建一个入口类,  

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

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

另外,高版本的idea支持一键创建maven包裹的JavaFX项目。

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

二、构建JavaFX项目为jar

Java 8:

第一步:打开Project Structure设置界面,点击Artifacts,添加JavaFX Application。

第二步:在JavaFX一栏中的Application class中选择入口类,然后Apply设置。

第三步:点击Build,然后选择Build Artifacts,然后选择刚刚创建的Artifact,等待构建成功。

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

Java 8+:

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

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.2.2</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>example</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

 第二步:重新加载maven设置,在mainClass标签中填入你的主类(以src/main/java文件夹为参照目录)

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

此时,在项目文件夹中,会生成target文件夹,里面包含了所产生的jar文件。  

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

三、打包JavaFX项目为exe

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

首先,准备好之前构建好的jar文件,以及编译所使用的jdk版本对应的jre或jdk本身,并将它们放在同一目录下。

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

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

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

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

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

此处设置exe文件名。

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

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

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

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

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

注:此种方法打包,由于需要包含完整的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。

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

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

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

四、总结

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

  • 27
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值