有以下几种形式,仅供参考
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 Toolset | 3.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 文件运行