Java项目打包成EXE全攻略

一、使用 exe4j 打包 Java 项目

exe4j 的官方网站是 https://www.ej-technologies.com/products/exe4j/overview.html。

准备 Java 项目 确保 Java 项目已编译为可执行的 JAR 文件,并确认所有依赖项(如第三方库)已正确包含在 JAR 中或位于同一目录下。

下载并安装 exe4j 从 exe4j 官网下载并安装 exe4j,安装完成后启动 exe4j 向导。

配置 exe4j 在 exe4j 向导中选择"JAR in EXE"模式,填写应用程序名称和输出目录。指定主类路径和 JAR 文件路径,确保勾选"Allow JAR files to be started directly"选项。

设置 JRE 要求 在"JRE"选项卡中配置最低和最高 JRE 版本,可以勾选"Search sequence"选项以指定 JRE 的搜索路径(如捆绑 JRE 或系统路径)。

生成 EXE 文件 完成配置后,点击"Build"按钮生成 EXE 文件。生成的 EXE 文件将位于指定的输出目录中。

二、使用 Inno Setup Compiler 创建安装程序

访问 Inno Setup 的官方网站可通过以下链接:
Inno Setup

准备安装文件 将生成的 EXE 文件、依赖的 JAR 文件、资源文件(如图片、配置文件)以及 JRE(如果需要捆绑)整理到一个目录中。

下载并安装 Inno Setup 从 Inno Setup 官网下载并安装 Inno Setup Compiler,启动后选择"Create a new script file using the Script Wizard"。

配置安装程序信息 在向导中填写应用程序名称、版本、发布者等信息,指定输出安装程序的目录和文件名。

添加文件和目录 在"Application files"页面添加主 EXE 文件、依赖文件及 JRE 目录(如果需捆绑)。在"Application shortcuts"页面配置桌面和开始菜单快捷方式。

设置安装选项 配置安装程序的默认安装目录、是否需要管理员权限、是否添加卸载程序等选项。可以自定义安装界面语言和样式。

编译脚本并生成安装程序 完成向导后保存脚本文件(.iss),点击"Compile"按钮生成安装程序(.exe)。生成的安装程序将位于输出目录中。

注意事项

在 IntelliJ IDEA 中打包 JAR 文件

方法 1:通过 Artifacts 配置打包可执行 JAR

打开项目后,导航至 File > Project Structure > Artifacts。点击 + 按钮,选择 JAR > From modules with dependencies。

在配置界面中,选择主类(包含 main 方法的类),并指定输出目录。勾选 Build on make 选项,确保每次构建时自动生成 JAR。

返回 IDEA 主界面,点击 Build > Build Artifacts,选择刚才创建的 Artifact 并点击 Build。生成的 JAR 文件会出现在配置的输出目录中。

方法 2:使用 Maven 插件打包

对于 Maven 项目,在 pom.xml 中添加 maven-assembly-plugin 或 maven-shade-plugin。以下是配置示例:

复制代码
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.3.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.Main</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
方法 3:使用 Gradle 插件打包

对于 Gradle 项目,在 build.gradle 中添加以下配置:

复制代码
plugins {
    id 'java'
}

jar {
    manifest {
        attributes 'Main-Class': 'com.example.Main'
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

执行 gradle build 后,JAR 文件会生成在 build/libs 目录中,包含所有依赖项。

注意事项
  • 如果项目依赖外部库,确保选择正确的方式(如 jar-with-dependencies)打包。
  • 检查生成的 MANIFEST.MF 文件是否包含正确的 Main-Class 属性。
  • 对于复杂项目,推荐使用构建工具(Maven/Gradle)管理依赖和打包流程。

JRE 捆绑

若目标机器可能没有安装 JRE,建议将 JRE 打包到安装程序中,并在 exe4j 中配置优先使用捆绑的 JRE。

问题1:版本问题,重新下载满足条件的JDK即可

问题2:

需要添加一个Jre的环境变量。检查你的环境变量,有没有添加或者添加是否正确!

依赖管理 确保所有依赖项(如 DLL 文件、本地库)包含在安装包中。
测试安装程序 在多种环境下测试安装程序,确保其兼容性和功能完整性。

相关推荐
m0_7380980220 分钟前
使用Python操作文件和目录(os, pathlib, shutil)
jvm·数据库·python
好家伙VCC22 分钟前
# 发散创新:用 Rust构建高性能游戏日系统,从零实现事件驱动架构 在现代游戏开发中,**性能与可扩展性**是核心命题。传统基于
java·python·游戏·架构·rust
爱笑的源码基地29 分钟前
门诊his系统源码,中西医结合的数字化门诊解决方案
java·spring boot·源码·二次开发·门诊系统·云诊所系统·诊所软件源码
庞轩px30 分钟前
缓存Key设计的“七要七不要”
java·jvm·redis·缓存
小璐资源网30 分钟前
Java 21 新特性实战:虚拟线程详解
java·开发语言·python
SimonKing42 分钟前
全网爆火的OpenClaw保姆级教程Linux版,它来了。
java·后端·程序员
2301_819414301 小时前
使用Python进行图像识别:CNN卷积神经网络实战
jvm·数据库·python
于慨1 小时前
tauri
java·服务器·前端
WZTTMoon1 小时前
从互斥锁到无锁,Java 20年并发安全进化史
java·python·安全