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 文件、本地库)包含在安装包中。
测试安装程序 在多种环境下测试安装程序,确保其兼容性和功能完整性。

相关推荐
心静财富之门10 分钟前
Flask 详细讲解 + 实战实例(零基础可学)
后端·python·flask
架构师老Y17 分钟前
003、Python Web框架深度对比:Django vs Flask vs FastAPI
前端·python·django
疯狂成瘾者1 小时前
语义分块提升RAG检索精度
python
小陈工3 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
一定要AK7 小时前
Spring 入门核心笔记
java·笔记·spring
A__tao7 小时前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
研究点啥好呢7 小时前
Github热门项目推荐 | 创建你的像素风格!
c++·python·node.js·github·开源软件
KevinCyao8 小时前
java视频短信接口怎么调用?SpringBoot集成视频短信及回调处理Demo
java·spring boot·音视频
迷藏4948 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
明日清晨8 小时前
python扫码登录dy
开发语言·python