javaFx模块化和非模块化打包

本文介绍了如何在JDK9之后辨别项目采用的模块化打包方式,包括检查module-info.java文件的存在、处理非模块化依赖转为模块化以及针对非模块化和模块化项目的打包配置,如javapackager和javafx-maven-plugin的使用。
摘要由CSDN通过智能技术生成

如何辨别项目使用哪种方式

模块化是jdk9之后引入的新特性,但是打包会遇到很多问题。
1.查看项目是否都有module-info.java文件(没有就使用非模块化打包方式)
在这里插入图片描述
2.查看所使用依赖是否都有module-info.java(如果任何一个依赖不是模块化的,你可以使用以下连接将非模块化依赖转为模块化)!!!!我转了两天依旧不能用,心态已炸
非模块化转为模块化连接(点这里)
转换完成之后依赖有这个东西,那么你就可以使用模块化打包了。
在这里插入图片描述

模块化项目转为非模块化项目

在这里插入图片描述

1.只需要删除项目种的module-info.java
2.但是此时启动项目就会报错,你需要手动写一个启动类如上图

打包方式

1.非模块化(JDK必须是21)

  <plugin>
                <groupId>io.github.fvarrui</groupId>
                <artifactId>javapackager</artifactId>
                <version>1.7.5</version>
                <configuration>
                    <name>hello</name>
                    <!--生成jre-->
                    <bundleJre>true</bundleJre>
                    <!--程序入口文件-->
                    <mainClass>com.example.qkimfx.Main</mainClass>
                    <!--生成安装程序-->
                    <generateInstaller>false</generateInstaller>
                </configuration>
                <executions>
                    <execution>
                        <id>bundling-for-windows</id>
                        <phase>package</phase>
                        <goals>
                            <goal>package</goal>
                        </goals>
                        <configuration>
                            <!--平台-->
                            <platform>windows</platform>
                            <!--生成压缩包-->
                            <createZipball>true</createZipball>

                            <winConfig>
                                <!--生成安装程序-->
                                <generateSetup>true</generateSetup>
                                <!--生成Msi-->
                                <generateMsi>true</generateMsi>
                                <!--标头类型 console-->
                                <headerType>gui</headerType>

                                <wrapJar>true</wrapJar>
                                <!--文件版本-->
                                <fileVersion>1.0.0.0</fileVersion>
                                <!--txt文件版本-->
                                <txtFileVersion>${project.version}</txtFileVersion>
                                <!--产品版本-->
                                <productVersion>1.0.0.0</productVersion>
                                <!--txt产品版本-->
                                <txtProductVersion>${project.version}</txtProductVersion>
                                <!--文件描述-->
                                <fileDescription>${project.description}</fileDescription>
                                <!--产品名称-->
                                <productName>${project.name}</productName>
                                <!--内部名称-->
                                <internalName>${project.name}</internalName>
                                <!--原始文件名-->
                                <originalFilename>${project.name}.exe</originalFilename>
                                <!--exe创建工具 winrun4j  launch4j-->
                                <exeCreationTool>winrun4j</exeCreationTool>
                                <!--设置模式-->
                                <setupMode>installForAllUsers</setupMode>
                                <!--设置语言-->
                                <setupLanguages>
                                    <ChineseSimplified>compiler:Languages\ChineseSimplified.isl</ChineseSimplified>
                                </setupLanguages>
                                <!--禁用目录页-->
                                <disableDirPage>false</disableDirPage>
                                <!--禁用程序组页面-->
                                <disableProgramGroupPage>false</disableProgramGroupPage>
                                <!--禁用已完成页面-->
                                <disableFinishedPage>false</disableFinishedPage>
                                <!--禁用安装后运行-->
                                <disableRunAfterInstall>false</disableRunAfterInstall>
                                <!--禁用欢迎页面-->
                                <disableWelcomePage>false</disableWelcomePage>
                                <!--创建桌面图标任务-->
                                <createDesktopIconTask>true</createDesktopIconTask>

                                <!--https://github.com/fvarrui/JavaPackager/blob/master/docs/windows-specific-properties.md-->
                                <icoFile>${project.basedir}/src/main/resources/img/icon.ico</icoFile>
                            </winConfig>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

2.模块化(idea创建之后其实默认就是使用这种方式)
说明:1.所使用依赖必须都是模块化
点击图中插件位置
在这里插入图片描述

            <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>com.example.demo3/com.example.demo3.HelloApplication</mainClass>
                            <launcher>app</launcher>
                            <jlinkZipName>app</jlinkZipName>
                            <jlinkImageName>app</jlinkImageName>
                            <noManPages>true</noManPages>
                            <stripDebug>true</stripDebug>
                            <noHeaderFiles>true</noHeaderFiles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值