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 文件运行

 

JavaFX中,打包通常是指将你的应用程序及其依赖项整合成一个可执行文件的过程,以便于用户下载和运行。以下是使用Maven或Gradle进行JavaFX应用打包的基本步骤: **使用Maven:** 1. 添加`<dependency>`到pom.xml,指定JavaFX库: ```xml <dependencies> ... <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>16.0.1+</version> <classifier>all</classifier> </dependency> ... </dependencies> ``` 2. 使用maven-jar-plugin创建jar包,包含所有依赖: ```xml <build> ... <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.example.MainApp</mainClass> </manifest> <addClasspath>true</addClasspath> </archive> </configuration> </plugin> </plugins> ... </build> ``` 3. 运行`mvn clean package`命令打包。 **使用Gradle:** 1. 添加JavaFX依赖到`build.gradle`文件: ```groovy implementation 'org.openjfx:javafx-controls:16.0.1+' ``` 2. 打包配置: ```groovy jar { manifest { attributes 'Main-Class': 'com.example.MainApp' } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } ``` 3. 运行`gradle build`打包。 **注意事项:** - 确保已安装JavaFX SDK,并设置系统环境变量指向其位置。 - `Main-Class`属性应在MANIFEST.MF文件中指定你的主应用程序类名。 - 包含所有依赖有助于在用户机器上运行,但可能会增加jar文件大小。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值