JavaFX 应用打包

有以下几种形式,仅供参考

jlink插件(jdk11)

jdk版本 9+  推荐 jdk11

配置模块信息(9+)

// 必须放在 src/main/java/module-info.java
module com.example.myapp {
    requires java.base;       // 隐式依赖
    requires java.desktop;    // AWT/Swing 支持
    requires javafx.controls; // JavaFX 模块
    
    exports com.example.ui;   // 暴露包
    opens com.example.model;  // 反射访问权限
}

使用 Maven正确打包

    <properties>
        <java.version>11</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

<!-- Maven 配置示例 -->
 <build>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.13.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</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>com.example.javafx/com.example.javafx.HelloApplication</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>

 运行打包

运行结果会生成 app.bat文件,双击可运行

jpckage(jdk17)

jdk版本 16+  推荐 jdk17

环境准备

工具版本要求下载地址
JDK≥ 16 (推荐 17+)Oracle JDK
WiX Toolset3.11+WiX 3.11

# 验证环境

java -version

jpackage --version

生成可执行 JAR

Maven 配置示例 (pom.xml)

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

生成 JAR:mvn clean package

使用 jpackage 打包

jpackage \
  --type app-image \
  --input target/ \                # JAR文件目录
  --dest release \                 # 输出目录
  --name MyApp \                   # 应用名称
  --main-jar myapp-1.0.jar \       # 主JAR文件
  --main-class com.example.MainApp \
  --runtime-image %JAVA_HOME% \    # 使用JRE路径
  --win-console \                  # 保留控制台窗口
  --icon src/main/logo.ico         # 应用图标

生成结果 

release/
├── MyApp/
│   ├── MyApp.exe
│   └── app/          # 包含所有依赖
└── MyApp-1.0.msi     # 安装程序

exe4j(1.8)

jdk 版本 1.8+

生成可执行 jar

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.13.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.4.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <!-- 指定主类 -->
                                    <mainClass>com.example.javafx.HelloApplication</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

运行 mvn clean package

下载安装 exe4j 

ej-technologies - Download exe4j

打包成 exe 文件

网络搜索  exe4j 打包 jar 

bat 运行 jar

生成可执行 jar

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.9.0</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.4.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <!-- 指定主类 -->
                                    <mainClass>com.example.javafx.HelloApplication</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

 新建 bat 文件

bat 文件和 jar 包在同一目录下

java -jar ./xxxx.jar

 双击 bat 文件运行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值